{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4caafec3",
   "metadata": {},
   "source": [
    "# Probability 2: Loaded dice \n",
    "\n",
    "In this assignment you will be reinforcening your intuition about the concepts covered in the lectures by taking the example with the dice to the next level. \n",
    "\n",
    "This assignment will not evaluate your coding skills but rather your intuition and analytical skills. You can answer any of the exercise questions by any means necessary, you can take the analytical route and compute the exact values or you can alternatively create some code that simulates the situations at hand and provide approximate values (grading will have some tolerance to allow approximate solutions). It is up to you which route you want to take! \n",
    "\n",
    "Note that every exercise has a blank cell that you can use to make your calculations, this cell has just been placed there for you convenience but **will not be graded** so you can leave empty if you want to."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "da0fcf2f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import utils"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4546a127",
   "metadata": {},
   "source": [
    "## Some concept clarifications 🎲🎲🎲\n",
    "\n",
    "During this assignment you will be presented with various scenarios that involve dice. Usually dice can have different numbers of sides and can be either fair or loaded.\n",
    "\n",
    "- A fair dice has equal probability of landing on every side.\n",
    "- A loaded dice does not have equal probability of landing on every side. Usually one (or more) sides have a greater probability of showing up than the rest.\n",
    "\n",
    "Let's get started!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c8f09f02",
   "metadata": {},
   "source": [
    "## Exercise 1:\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3510c610",
   "metadata": {},
   "source": [
    "Given a 6-sided fair dice (all of the sides have equal probability of showing up), compute the mean and variance for the probability distribution that models said dice. The next figure shows you a visual represenatation of said distribution:\n",
    "\n",
    "<img src=\"./images/fair_dice.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "**Submission considerations:**\n",
    "- Submit your answers as floating point numbers with three digits after the decimal point\n",
    "- Example: To submit the value of 1/4 enter 0.250"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ee9b479",
   "metadata": {},
   "source": [
    "Hints: \n",
    "- You can use [np.random.choice](https://numpy.org/doc/stable/reference/random/generated/numpy.random.choice.html) to simulate a fair dice.\n",
    "- You can use [np.mean](https://numpy.org/doc/stable/reference/generated/numpy.mean.html) and [np.var](https://numpy.org/doc/stable/reference/generated/numpy.var.html) to compute the mean and variance of a numpy array."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "df437e8e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean: 3.499, Variance: 2.916\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "dice_rolls = np.random.choice([1, 2, 3, 4, 5, 6], size=1000000)\n",
    "mean = np.mean(dice_rolls)\n",
    "variance = np.var(dice_rolls)\n",
    "print(f\"Mean: {mean:.3f}, Variance: {variance:.3f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "db9477e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "395643493f7248c58c25dae1d466505e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='Mean:')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9a2f409e9bce4afea695c38de1b44303",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='Variance:')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7bde44c96b63473fa2073f78d558250f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "dbea8dca32c448ab8917594fee93a12e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_1()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d43dcbbd",
   "metadata": {},
   "source": [
    "## Exercise 2:\n",
    "\n",
    "Now suppose you are throwing the dice (same dice as in the previous exercise) two times and recording the sum of each throw. Which of the following `probability mass functions` will be the one you should get?\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"./images/hist_sum_6_side.png\" style=\"height: 300px;\"/> </td>\n",
    "<td> <img src=\"./images/hist_sum_5_side.png\" style=\"height: 300px;\"/> </td>\n",
    "<td> <img src=\"./images/hist_sum_6_uf.png\" style=\"height: 300px;\"/> </td>\n",
    "</tr></table>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "605c58c0",
   "metadata": {},
   "source": [
    "Hints: \n",
    "- You can use numpy arrays to hold the results of many throws.\n",
    "- You can sum to numpy arrays by using the `+` operator like this: `sum = first_throw + second_throw`\n",
    "- To simulate multiple throws of a dice you can use list comprehension or a for loop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e9a8b2ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/RUlEQVR4nO3dfViUZf7//9cIMlgq3iP4QUC3FCPN4JOBkpqJqZmWbpj3m1iIu4lUq4iG2ippZljesJpmVppbWrnFpuiq2YKVKNWWq92AmMIimmD6FRDm94c/59M0oIDgMF7Px3HMEXNe53Ve73PskJfndTMmi8ViEQAAgIE0cHQBAAAA1xsBCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCLjBrFu3TiaTSfv3769w+wMPPCA/Pz+bNj8/P02YMKFax0lLS9OcOXN05syZmhVqQJs2bdJtt92mRo0ayWQyKTMz09ElAYZFAAKg9957T7Nnz67WPmlpaZo7dy4BqIpOnjypsWPHqmPHjvr444+Vnp6uW2+91dFlAYbl6ugCADhe9+7dHV1CtZWWlspkMsnV1Tn+Gjty5IhKS0s1ZswY9e7d29HlAIbHChAAu1Ng5eXl+stf/qJOnTqpUaNGatasmbp27aqlS5dKkubMmaNnnnlGkuTv7y+TySSTyaTdu3db91+0aJE6d+4ss9msNm3aaNy4cfrpp59sjmuxWLRgwQL5+vrK3d1dwcHBSk1NVZ8+fdSnTx9rv927d8tkMumNN97QU089pXbt2slsNuv777/XyZMnFR0drS5duqhx48Zq06aN7r33Xu3du9fmWNnZ2TKZTHrhhRe0cOFC+fn5qVGjRurTp481nMyYMUPe3t7y8PDQQw89pPz8/Cp9flu3blVISIhuuukmNWnSRP3791d6erp1+4QJE9SrVy9JUkREhEwmk838fuv8+fN6+umn5e/vL3d3d7Vo0ULBwcHauHGjtc9vP6NfH+vXpzjrct6AM3OOfzoBqLaysjJdvHjRrt1isVx130WLFmnOnDmaNWuW7rnnHpWWluo///mP9XRXZGSkTp8+rVdeeUVbtmyRl5eXJKlLly6SpMmTJ2vVqlX64x//qAceeEDZ2dmaPXu2du/erQMHDqhVq1aSpPj4eCUmJurxxx/Xww8/rGPHjikyMlKlpaUVnh6Ki4tTSEiIkpOT1aBBA7Vp00YnT56UJCUkJKht27b65Zdf9N5776lPnz7auXOnXUhYvny5unbtquXLl+vMmTN66qmnNGTIEPXo0UMNGzbU2rVrdfToUT399NOKjIzU1q1br/hZbdiwQaNHj1Z4eLg2btyo4uJiLVq0yHr8Xr16afbs2brrrrs0ZcoULViwQH379lXTpk0rHTM2NlZvvPGG/vKXv6h79+46d+6c/v3vf+vUqVNX/bOrTG3PG3B6FgA3lNdee80i6YovX19fm318fX0t48ePt75/4IEHLHfccccVj/PCCy9YJFmysrJs2g8dOmSRZImOjrZp/+yzzyySLDNnzrRYLBbL6dOnLWaz2RIREWHTLz093SLJ0rt3b2vbrl27LJIs99xzz1Xnf/HiRUtpaamlX79+loceesjanpWVZZFk6datm6WsrMzanpSUZJFkefDBB23GiYmJsUiyFBYWVnqssrIyi7e3t+X222+3GfPs2bOWNm3aWEJDQ+3m8M4771x1DoGBgZZhw4ZdsU/v3r1tPqPLxo8fb/PnWxfzBm4EnAIDblDr16/XF198Yfe6fCrmSu666y59+eWXio6O1rZt21RUVFTl4+7atUuS7O4qu+uuuxQQEKCdO3dKkvbt26fi4mI98sgjNv3uvvtuu7vULhs+fHiF7cnJybrzzjvl7u4uV1dXNWzYUDt37tShQ4fs+g4aNEgNGvzfX30BAQGSpMGDB9v0u9yek5NTyUylw4cP68SJExo7dqzNmI0bN9bw4cO1b98+nT9/vtL9K3PXXXfpH//4h2bMmKHdu3fr//2//1ftMX6rNucN3AgIQMANKiAgQMHBwXYvDw+Pq+4bFxenxYsXa9++fRo4cKBatmypfv36VXpr/a9dPk1z+bTYr3l7e1u3X/6vp6enXb+K2iobc8mSJZo8ebJ69OihzZs3a9++ffriiy90//33VxgcWrRoYfPezc3tiu0XLlyosJZfz6GyuZaXl+vnn3+udP/KvPzyy5o+fbref/999e3bVy1atNCwYcP03XffVXusy2pz3sCNgAAEwI6rq6tiY2N14MABnT59Whs3btSxY8c0YMCAq65otGzZUpKUm5trt+3EiRPW638u9/vvf/9r1y8vL6/CsU0mk13bm2++qT59+mjlypUaPHiwevTooeDgYJ09e/bKk6wFV5trgwYN1Lx582qPe/PNN2vu3Ln6z3/+o7y8PK1cuVL79u3TkCFDrH3c3d1VXFxst29BQUG1jwcYEQEIwBU1a9ZMI0aM0JQpU3T69GllZ2dLksxmsyTZrbLce++9ki4Fk1/74osvdOjQIfXr10+S1KNHD5nNZm3atMmm3759+3T06NEq12cymay1XPbVV1/Z3IVVVzp16qR27dppw4YNNheXnzt3Tps3b7beGXYtPD09NWHCBD366KM6fPiwNYD6+fnpyJEjNiHo1KlTSktLu6bjAUbBXWAA7AwZMkSBgYEKDg5W69atdfToUSUlJcnX11e33HKLJOn222+XJC1dulTjx49Xw4YN1alTJ3Xq1EmPP/64XnnlFTVo0EADBw603gXm4+OjadOmSbp06iU2NlaJiYlq3ry5HnroIf3000+aO3euvLy8bK5XuZIHHnhAzz33nBISEtS7d28dPnxY8+bNk7+/f4V3wdWmBg0aaNGiRRo9erQeeOABPfHEEyouLtYLL7ygM2fO6Pnnn6/RuD169NADDzygrl27qnnz5jp06JDeeOMNm0A1duxY/fWvf9WYMWM0adIknTp1SosWLbri3WUA/g8BCICdvn37avPmzXr11VdVVFSktm3bqn///po9e7YaNmwo6dJzaOLi4vT6669r9erVKi8v165du6ynozp27Kg1a9Zo+fLl8vDw0P3336/ExETraSNJmj9/vm6++WYlJyfrtddeU+fOnbVy5UrFx8erWbNmVao1Pj5e58+f15o1a7Ro0SJ16dJFycnJeu+996zPJapLo0aN0s0336zExERFRETIxcVFd999t3bt2qXQ0NAajXnvvfdq69ateumll3T+/Hm1a9dO48aNU3x8vLVPz5499frrr+v555/X0KFD1aFDByUkJCglJeW6zBtwdiaLpQoPBQGA6yQrK0udO3dWQkKCZs6c6ehyANygCEAAHObLL7/Uxo0bFRoaqqZNm+rw4cNatGiRioqK9O9//7vSu8EA4FpxCgyAw9x8883av3+/1qxZozNnzsjDw0N9+vTR/PnzCT8A6hQrQAAAwHC4DR4AABgOAQgAABgOAQgAABgOF0FXoLy8XCdOnFCTJk0qfPQ+AACofywWi86ePStvb++rPkyVAFSBEydOyMfHx9FlAACAGjh27Jj+53/+54p9CEAVaNKkiaRLHyCPlQcAwDkUFRXJx8fH+nv8SghAFbh82qtp06YEIAAAnExVLl/hImgAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4BCAAAGA4ro4uAACqy2/GR44uQdnPD3Z0CQCuAStAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcBwegFasWCF/f3+5u7srKChIe/furbRvbm6uRo0apU6dOqlBgwaKiYmpsN+ZM2c0ZcoUeXl5yd3dXQEBAUpJSamjGQAAAGfj0AC0adMmxcTEKD4+XgcPHlRYWJgGDhyonJycCvsXFxerdevWio+PV7du3SrsU1JSov79+ys7O1vvvvuuDh8+rNWrV6tdu3Z1ORUAAOBEHPpVGEuWLNHEiRMVGRkpSUpKStK2bdu0cuVKJSYm2vX38/PT0qVLJUlr166tcMy1a9fq9OnTSktLU8OGDSVJvr6+dTQDAADgjBy2AlRSUqKMjAyFh4fbtIeHhystLa3G427dulUhISGaMmWKPD09FRgYqAULFqisrOxaSwYAADcIh60AFRQUqKysTJ6enjbtnp6eysvLq/G4P/74o/75z39q9OjRSklJ0XfffacpU6bo4sWLevbZZyvcp7i4WMXFxdb3RUVFNT4+AACo/xx+EbTJZLJ5b7FY7Nqqo7y8XG3atNGqVasUFBSkkSNHKj4+XitXrqx0n8TERHl4eFhfPj4+NT4+AACo/xwWgFq1aiUXFxe71Z78/Hy7VaHq8PLy0q233ioXFxdrW0BAgPLy8lRSUlLhPnFxcSosLLS+jh07VuPjAwCA+s9hAcjNzU1BQUFKTU21aU9NTVVoaGiNx+3Zs6e+//57lZeXW9uOHDkiLy8vubm5VbiP2WxW06ZNbV4AAODG5dBTYLGxsXr11Ve1du1aHTp0SNOmTVNOTo6ioqIkXVqZGTdunM0+mZmZyszM1C+//KKTJ08qMzNT3377rXX75MmTderUKU2dOlVHjhzRRx99pAULFmjKlCnXdW4AAKD+cuht8BERETp16pTmzZun3NxcBQYGKiUlxXrbem5urt0zgbp37279OSMjQxs2bJCvr6+ys7MlST4+Ptq+fbumTZumrl27ql27dpo6daqmT59+3eYFAADqN5PFYrE4uoj6pqioSB4eHiosLOR0GFAP+c34yNElKPv5wY4uAcBvVOf3t8PvAgMAALjeCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwHB6AVqxYIX9/f7m7uysoKEh79+6ttG9ubq5GjRqlTp06qUGDBoqJibni2G+//bZMJpOGDRtWu0UDAACn5tAAtGnTJsXExCg+Pl4HDx5UWFiYBg4cqJycnAr7FxcXq3Xr1oqPj1e3bt2uOPbRo0f19NNPKywsrC5KBwAATsyhAWjJkiWaOHGiIiMjFRAQoKSkJPn4+GjlypUV9vfz89PSpUs1btw4eXh4VDpuWVmZRo8erblz56pDhw51VT4AAHBSDgtAJSUlysjIUHh4uE17eHi40tLSrmnsefPmqXXr1po4cWKV+hcXF6uoqMjmBQAAblwOC0AFBQUqKyuTp6enTbunp6fy8vJqPO6//vUvrVmzRqtXr67yPomJifLw8LC+fHx8anx8AABQ/zn8ImiTyWTz3mKx2LVV1dmzZzVmzBitXr1arVq1qvJ+cXFxKiwstL6OHTtWo+MDAADn4OqoA7dq1UouLi52qz35+fl2q0JV9cMPPyg7O1tDhgyxtpWXl0uSXF1ddfjwYXXs2NFuP7PZLLPZXKNjAkBF/GZ85OgSJEnZzw92dAlAveSwAOTm5qagoCClpqbqoYcesranpqZq6NChNRqzc+fO+vrrr23aZs2apbNnz2rp0qWc2gKuoj780uYXNoDrwWEBSJJiY2M1duxYBQcHKyQkRKtWrVJOTo6ioqIkXTo1dfz4ca1fv966T2ZmpiTpl19+0cmTJ5WZmSk3Nzd16dJF7u7uCgwMtDlGs2bNJMmuHQAAGJdDA1BERIROnTqlefPmKTc3V4GBgUpJSZGvr6+kSw8+/O0zgbp37279OSMjQxs2bJCvr6+ys7OvZ+kAAMCJOTQASVJ0dLSio6Mr3LZu3Tq7NovFUq3xKxoDAAAYm8PvAgMAALjeCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwCEAAAMBwHB6AVqxYIX9/f7m7uysoKEh79+6ttG9ubq5GjRqlTp06qUGDBoqJibHrs3r1aoWFhal58+Zq3ry57rvvPn3++ed1OAMAAOBsHBqANm3apJiYGMXHx+vgwYMKCwvTwIEDlZOTU2H/4uJitW7dWvHx8erWrVuFfXbv3q1HH31Uu3btUnp6utq3b6/w8HAdP368LqcCAACciEMD0JIlSzRx4kRFRkYqICBASUlJ8vHx0cqVKyvs7+fnp6VLl2rcuHHy8PCosM9bb72l6Oho3XHHHercubNWr16t8vJy7dy5sy6nAgAAnIjDAlBJSYkyMjIUHh5u0x4eHq60tLRaO8758+dVWlqqFi1aVNqnuLhYRUVFNi8AAHDjclgAKigoUFlZmTw9PW3aPT09lZeXV2vHmTFjhtq1a6f77ruv0j6JiYny8PCwvnx8fGrt+AAAoP5x+EXQJpPJ5r3FYrFrq6lFixZp48aN2rJli9zd3SvtFxcXp8LCQuvr2LFjtXJ8AABQP7k66sCtWrWSi4uL3WpPfn6+3apQTSxevFgLFizQjh071LVr1yv2NZvNMpvN13xMAADgHBy2AuTm5qagoCClpqbatKempio0NPSaxn7hhRf03HPP6eOPP1ZwcPA1jQUAAG48DlsBkqTY2FiNHTtWwcHBCgkJ0apVq5STk6OoqChJl05NHT9+XOvXr7fuk5mZKUn65ZdfdPLkSWVmZsrNzU1dunSRdOm01+zZs7Vhwwb5+flZV5gaN26sxo0bX98JAgCAesmhASgiIkKnTp3SvHnzlJubq8DAQKWkpMjX11fSpQcf/vaZQN27d7f+nJGRoQ0bNsjX11fZ2dmSLj1YsaSkRCNGjLDZLyEhQXPmzKnT+QAAAOfg0AAkSdHR0YqOjq5w27p16+zaLBbLFce7HIQAAAAq4/C7wAAAAK43AhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAcAhAAADAch38XGGAEfjM+cnQJyn5+sKNLQD3E/5swKlaAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4RCAAACA4dQoAK1bt07nz5+v7VoAAACuixoFoLi4OLVt21YTJ05UWlpabdcEAABQp2oUgH766Se9+eab+vnnn9W3b1917txZCxcuVF5eXm3XBwAAUOtqFIBcXFz04IMPasuWLTp27Jgef/xxvfXWW2rfvr0efPBBffDBByovL6/SWCtWrJC/v7/c3d0VFBSkvXv3Vto3NzdXo0aNUqdOndSgQQPFxMRU2G/z5s3q0qWLzGazunTpovfee68m0wQAADeoa74Iuk2bNurZs6dCQkLUoEEDff3115owYYI6duyo3bt3X3HfTZs2KSYmRvHx8Tp48KDCwsI0cOBA5eTkVNi/uLhYrVu3Vnx8vLp161Zhn/T0dEVERGjs2LH68ssvNXbsWD3yyCP67LPPrnWqAADgBlHjAPTf//5Xixcv1m233aY+ffqoqKhIH374obKysnTixAk9/PDDGj9+/BXHWLJkiSZOnKjIyEgFBAQoKSlJPj4+WrlyZYX9/fz8tHTpUo0bN04eHh4V9klKSlL//v0VFxenzp07Ky4uTv369VNSUlJNpwoAAG4wNQpAQ4YMkY+Pj9atW6dJkybp+PHj2rhxo+677z5JUqNGjfTUU0/p2LFjlY5RUlKijIwMhYeH27SHh4df04XV6enpdmMOGDDgimMWFxerqKjI5gUAAG5crjXZqU2bNtqzZ49CQkIq7ePl5aWsrKxKtxcUFKisrEyenp427Z6entd0MXVeXl61x0xMTNTcuXNrfEwAAOBcarQC1Lt3b91555127SUlJVq/fr0kyWQyydfX96pjmUwmm/cWi8WurbqqO2ZcXJwKCwutryutXAEAAOdXowD0hz/8QYWFhXbtZ8+e1R/+8IcqjdGqVSu5uLjYrczk5+fbreBUR9u2bas9ptlsVtOmTW1eAADgxlWjAFTZispPP/1U6cXJ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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "sums = first_throw + second_throw\n",
    "\n",
    "plt.hist(sums, bins=range(2, 14), align='left', rwidth=0.8, density=True)\n",
    "plt.xticks(range(2, 13, 2))\n",
    "plt.xlabel('Sum of dice')\n",
    "plt.ylabel('Probability')\n",
    "plt.title('Histogram of sum')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d4d5dcf9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f26fe400caf54a6394dc8dc5abc5f751",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='Your answer:', options=('left', 'center', 'right'), value='left')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "de794385f9e94357957e0efb36f07476",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4c3017eeb8f742d8b51551cb99687887",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_2()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adfb889c",
   "metadata": {},
   "source": [
    "## Exercise 3:\n",
    "\n",
    "Given a fair 4-sided dice, you throw it two times and record the sum. The figure on the left shows the probabilities of the dice landing on each side and the right figure the histogram of the sum. Fill out the probabilities of each sum (notice that the distribution of the sum is symetrical so you only need to input 4 values in total):\n",
    "\n",
    "<img src=\"./images/4_side_hists.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "**Submission considerations:**\n",
    "- Submit your answers as floating point numbers with three digits after the decimal point\n",
    "- Example: To submit the value of 1/4 enter 0.250"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "342ca685",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2x0lEQVR4nO3deVyVdf7//+cB9WAq5AZiImKlgOYGiWC4ZGCmpmUjLaKWZqRTKtUYkrm0oLZh5jI2JlojUqOWUzaG3lw/aqMItoyjjmmYQrgkuHxFhev3Bz9PnQADBC71etxvt+sW533e1/u83lfe5On7Wo7NMAxDAAAAFuJidgEAAADVjQAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAE3GCSkpJks9m0c+fOEt/v16+fWrRo4dTWokULDR8+vFyfs3XrVk2ZMkWnTp2qWKEWlJKSojZt2qh27dqy2WzKyMgwuyTAsghAALRy5UpNmjSpXPts3bpVU6dOJQCV0bFjxxQdHa1bb71V//rXv7Rt2za1atXK7LIAy6phdgEAzNexY0ezSyi3ixcvymazqUaN6+OvsX379unixYsaMmSIunfvbnY5gOWxAgSg2CmwwsJCvfrqq2rdurVq166tm2++We3atdOsWbMkSVOmTNELL7wgSfLz85PNZpPNZtOGDRsc+8+cOVP+/v6y2+3y9PTU0KFD9dNPPzl9rmEYev311+Xr6ys3NzcFBwcrNTVVPXr0UI8ePRz9NmzYIJvNpg8//FDPPfecbrnlFtntdv3vf//TsWPHNHr0aAUGBqpu3bry9PTU3Xffrc2bNzt91qFDh2Sz2fTGG29oxowZatGihWrXrq0ePXo4wsmLL76opk2bysPDQw888IBycnLKdPxWrVql0NBQ3XTTTapXr54iIiK0bds2x/vDhw/XXXfdJUmKioqSzWZzmt/vnTt3Ts8//7z8/Pzk5uamBg0aKDg4WMnJyY4+vz9Gv/2s357irMp5A9ez6+OfTgDKraCgQJcuXSrWbhjGH+47c+ZMTZkyRS+99JK6deumixcv6r///a/jdNfIkSN18uRJzZ49WytWrJC3t7ckKTAwUJL09NNPa8GCBfrzn/+sfv366dChQ5o0aZI2bNigXbt2qVGjRpKk+Ph4JSQkaNSoUXrwwQd1+PBhjRw5UhcvXizx9FBcXJxCQ0M1f/58ubi4yNPTU8eOHZMkTZ48WU2aNNGZM2e0cuVK9ejRQ+vWrSsWEubMmaN27dppzpw5OnXqlJ577jn1799fISEhqlmzpj744AP9+OOPev755zVy5EitWrXqisdq6dKleuyxxxQZGank5GTl5+dr5syZjs+/6667NGnSJHXu3FljxozR66+/rp49e8rd3b3UMWNjY/Xhhx/q1VdfVceOHXX27Fl99913OnHixB/+vytNZc8buO4ZAG4oixYtMiRdcfP19XXax9fX1xg2bJjjdb9+/YwOHTpc8XPeeOMNQ5Jx8OBBp/Y9e/YYkozRo0c7tX/99deGJGPixImGYRjGyZMnDbvdbkRFRTn127ZtmyHJ6N69u6Nt/fr1hiSjW7dufzj/S5cuGRcvXjR69eplPPDAA472gwcPGpKM9u3bGwUFBY72xMREQ5Jx//33O40zbtw4Q5KRm5tb6mcVFBQYTZs2Ne644w6nMU+fPm14enoaYWFhxebwySef/OEc2rZtawwcOPCKfbp37+50jC4bNmyY0//fqpg3cCPgFBhwg1qyZIl27NhRbLt8KuZKOnfurN27d2v06NFas2aN8vLyyvy569evl6Rid5V17txZAQEBWrdunSRp+/btys/P1+DBg536denSpdhdapcNGjSoxPb58+erU6dOcnNzU40aNVSzZk2tW7dOe/bsKdb3vvvuk4vLr3/1BQQESJL69u3r1O9ye2ZmZikzlfbu3aujR48qOjraacy6detq0KBB2r59u86dO1fq/qXp3LmzvvzyS7344ovasGGD/t//+3/lHuP3KnPewI2AAATcoAICAhQcHFxs8/Dw+MN94+Li9Oabb2r79u3q06ePGjZsqF69epV6a/1vXT5Nc/m02G81bdrU8f7l/3p5eRXrV1JbaWO+/fbbevrppxUSEqLly5dr+/bt2rFjh+69994Sg0ODBg2cXteqVeuK7efPny+xlt/OobS5FhYW6pdffil1/9K8++67mjBhgj799FP17NlTDRo00MCBA7V///5yj3VZZc4buBEQgAAUU6NGDcXGxmrXrl06efKkkpOTdfjwYfXu3fsPVzQaNmwoScrKyir23tGjRx3X/1zu9/PPPxfrl52dXeLYNputWNtHH32kHj16aN68eerbt69CQkIUHBys06dPX3mSleCP5uri4qL69euXe9w6depo6tSp+u9//6vs7GzNmzdP27dvV//+/R193NzclJ+fX2zf48ePl/vzACsiAAG4optvvlkPPfSQxowZo5MnT+rQoUOSJLvdLknFVlnuvvtuSUXB5Ld27NihPXv2qFevXpKkkJAQ2e12paSkOPXbvn27fvzxxzLXZ7PZHLVc9s033zjdhVVVWrdurVtuuUVLly51urj87NmzWr58uePOsKvh5eWl4cOH65FHHtHevXsdAbRFixbat2+fUwg6ceKEtm7delWfB1gFd4EBKKZ///5q27atgoOD1bhxY/34449KTEyUr6+vbr/9dknSHXfcIUmaNWuWhg0bppo1a6p169Zq3bq1Ro0apdmzZ8vFxUV9+vRx3AXm4+Oj8ePHSyo69RIbG6uEhATVr19fDzzwgH766SdNnTpV3t7eTterXEm/fv30yiuvaPLkyerevbv27t2radOmyc/Pr8S74CqTi4uLZs6cqccee0z9+vXTU089pfz8fL3xxhs6deqUpk+fXqFxQ0JC1K9fP7Vr107169fXnj179OGHHzoFqujoaP31r3/VkCFD9OSTT+rEiROaOXPmFe8uA/ArAhCAYnr27Knly5frb3/7m/Ly8tSkSRNFRERo0qRJqlmzpqSi59DExcVp8eLFev/991VYWKj169c7TkfdeuutWrhwoebMmSMPDw/de++9SkhIcJw2kqTXXntNderU0fz587Vo0SL5+/tr3rx5io+P180331ymWuPj43Xu3DktXLhQM2fOVGBgoObPn6+VK1c6nktUlR599FHVqVNHCQkJioqKkqurq7p06aL169crLCysQmPefffdWrVqld555x2dO3dOt9xyi4YOHar4+HhHn65du2rx4sWaPn26BgwYoJYtW2ry5MlavXp1tcwbuN7ZDKMMDwUBgGpy8OBB+fv7a/LkyZo4caLZ5QC4QRGAAJhm9+7dSk5OVlhYmNzd3bV3717NnDlTeXl5+u6770q9GwwArhanwACYpk6dOtq5c6cWLlyoU6dOycPDQz169NBrr71G+AFQpVgBAgAAlsNt8AAAwHIIQAAAwHIIQAAAwHK4CLoEhYWFOnr0qOrVq1fio/cBAMC1xzAMnT59Wk2bNv3Dh6kSgEpw9OhR+fj4mF0GAACogMOHD6tZs2ZX7EMAKkG9evUkFR1AHisPAMD1IS8vTz4+Po7f41dCACrB5dNe7u7uBCAAAK4zZbl8hYugAQCA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5ZgegObOnSs/Pz+5ubkpKChImzdvLrXvihUrFBERocaNG8vd3V2hoaFas2aNU5+kpCTZbLZi2/nz56t6KgAA4DphagBKSUnRuHHjFB8fr/T0dIWHh6tPnz7KzMwssf+mTZsUERGh1atXKy0tTT179lT//v2Vnp7u1M/d3V1ZWVlOm5ubW3VMCQAAXAdshmEYZn14SEiIOnXqpHnz5jnaAgICNHDgQCUkJJRpjDZt2igqKkovv/yypKIVoHHjxunUqVMVrisvL08eHh7Kzc3l2+ABALhOlOf3t2krQBcuXFBaWpoiIyOd2iMjI7V169YyjVFYWKjTp0+rQYMGTu1nzpyRr6+vmjVrpn79+hVbIfq9/Px85eXlOW0AAODGVcOsDz5+/LgKCgrk5eXl1O7l5aXs7OwyjfHWW2/p7NmzGjx4sKPN399fSUlJuuOOO5SXl6dZs2apa9eu2r17t26//fYSx0lISNDUqVMrPhkAlaLFi1+YXUKlOzS9r9klACiB6RdB22w2p9eGYRRrK0lycrKmTJmilJQUeXp6Otq7dOmiIUOGqH379goPD9fHH3+sVq1aafbs2aWOFRcXp9zcXMd2+PDhik8IAABc80xbAWrUqJFcXV2Lrfbk5OQUWxX6vZSUFI0YMUKffPKJ7rnnniv2dXFx0Z133qn9+/eX2sdut8tut5e9eAAAcF0zbQWoVq1aCgoKUmpqqlN7amqqwsLCSt0vOTlZw4cP19KlS9W37x8vLRuGoYyMDHl7e191zQAA4MZg2gqQJMXGxio6OlrBwcEKDQ3VggULlJmZqZiYGElFp6aOHDmiJUuWSCoKP0OHDtWsWbPUpUsXx+pR7dq15eHhIUmaOnWqunTpottvv115eXl69913lZGRoTlz5pgzSQAAcM0xNQBFRUXpxIkTmjZtmrKystS2bVutXr1avr6+kqSsrCynZwL99a9/1aVLlzRmzBiNGTPG0T5s2DAlJSVJkk6dOqVRo0YpOztbHh4e6tixozZt2qTOnTtX69wAAMC1y9TnAF2reA4QYA7uAgNwNa6L5wABAACYhQAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAsx/QANHfuXPn5+cnNzU1BQUHavHlzqX1XrFihiIgINW7cWO7u7goNDdWaNWuK9Vu+fLkCAwNlt9sVGBiolStXVuUUAADAdcbUAJSSkqJx48YpPj5e6enpCg8PV58+fZSZmVli/02bNikiIkKrV69WWlqaevbsqf79+ys9Pd3RZ9u2bYqKilJ0dLR2796t6OhoDR48WF9//XV1TQsAAFzjbIZhGGZ9eEhIiDp16qR58+Y52gICAjRw4EAlJCSUaYw2bdooKipKL7/8siQpKipKeXl5+vLLLx197r33XtWvX1/JycllGjMvL08eHh7Kzc2Vu7t7OWYE4Gq0ePELs0uodIem9zW7BMAyyvP727QVoAsXLigtLU2RkZFO7ZGRkdq6dWuZxigsLNTp06fVoEEDR9u2bduKjdm7d+8rjpmfn6+8vDynDQAA3LhMC0DHjx9XQUGBvLy8nNq9vLyUnZ1dpjHeeustnT17VoMHD3a0ZWdnl3vMhIQEeXh4ODYfH59yzAQAAFxvTL8I2mazOb02DKNYW0mSk5M1ZcoUpaSkyNPT86rGjIuLU25urmM7fPhwOWYAAACuNzXM+uBGjRrJ1dW12MpMTk5OsRWc30tJSdGIESP0ySef6J577nF6r0mTJuUe0263y263l3MGAADgemXaClCtWrUUFBSk1NRUp/bU1FSFhYWVul9ycrKGDx+upUuXqm/f4hcXhoaGFhvzq6++uuKYAADA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bd26tcLjbtu2rdiYvXv3vuKY+fn5ysvLc9oAAMCNy7QAdPz4cRUUFMjLy8up3cvLS9nZ2RUeNzs7u9xjJiQkyMPDw7H5+PhU+PMBAMC1z/SLoG02m9NrwzCKtVX1mHFxccrNzXVshw8fvqrPBwAA17ZyPQeoMjVq1Eiurq7FVmZycnKKreCUR5MmTco9pt1ud3q6NQAAuLGZtgJUq1YtBQUFKTU11ak9NTVVYWFhFR43NDS02JhfffXVVY0JAABuLKatAElSbGysoqOjFRwcrNDQUC1YsECZmZmKiYmRVHRq6siRI1qyZIljn4yMDEnSmTNndOzYMWVkZKhWrVoKDAyUJI0dO1bdunXTjBkzNGDAAH322Wdau3attmzZUu3zAwAA1yZTA1BUVJROnDihadOmKSsrS23bttXq1avl6+srqejBh79/JlDHjh0dP6elpWnp0qXy9fXVoUOHJElhYWFatmyZXnrpJU2aNEm33nqrUlJSFBISUm3zAgAA1zZTA5AkjR49WqNHjy7xvaSkpGJthmH84ZgPPfSQHnrooastDQAA3KBMvwsMAACguhGAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5dQwuwAravHiF2aXUOkOTe9rdgkAcMPi90blYwUIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYjukBaO7cufLz85Obm5uCgoK0efPmK/bfuHGjgoKC5ObmppYtW2r+/PlO7yclJclmsxXbzp8/X5XTAAAA1xFTA1BKSorGjRun+Ph4paenKzw8XH369FFmZmaJ/Q8ePKj77rtP4eHh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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4], size=num_trials)\n",
    "sums = first_throw + second_throw\n",
    "\n",
    "plt.hist(sums, bins=range(2, 10), align='left', rwidth=0.8, density=True)\n",
    "plt.xticks(range(2, 9))\n",
    "plt.xlabel('Sum of dice')\n",
    "plt.ylabel('Probability')\n",
    "plt.title('Histogram of sum')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e0a24beb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "47977d77817546c2a4da2c832ae7acb6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='P for sum=2|8', style=DescriptionStyle(description_width='initial'))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f576bd50366a416499b7adc2d2e8da9f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='P for sum=3|7:', style=DescriptionStyle(description_width='initial'))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7d1fc687d2da4c44b6ef98176b508b91",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='P for sum=4|6:', style=DescriptionStyle(description_width='initial'))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1244e3b8c57846cfaed1347bd214a181",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='P for sum=5:', style=DescriptionStyle(description_width='initial'))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f41706179b0a4dc7b2ff97982b68f552",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d88cfd196c8f48f19f04470543052347",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_3()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "108837bd",
   "metadata": {},
   "source": [
    "## Exercise 4:\n",
    "\n",
    "Using the same scenario as in the previous exercise. Compute the mean and variance of the sum of the two throws  and the covariance between the first and the second throw:\n",
    "\n",
    "<img src=\"./images/4_sided_hist_no_prob.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "\n",
    "Hints:\n",
    "- You can use [np.cov](https://numpy.org/doc/stable/reference/generated/numpy.cov.html) to compute the covariance of two numpy arrays (this may not be needed for this particular exercise)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f4eadc3c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean of sum: 5.000\n",
      "Variance of sum: 2.499\n",
      "Covariance between first and second throw: -0.001\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4], size=num_trials)\n",
    "sums = first_throw + second_throw\n",
    "\n",
    "print(f\"Mean of sum: {np.mean(sums):.3f}\")\n",
    "print(f\"Variance of sum: {np.var(sums):.3f}\")\n",
    "print(f\"Covariance between first and second throw: {np.cov(first_throw, second_throw)[0, 1]:.3f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "4e662b9b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6dad6dd34611453aab0722296342f0fe",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='Mean:')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ab91b014e0d4485b858f22a39fc171f2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='Variance:')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "cbf34ec9760a437b9e3a787d502e2929",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FloatText(value=0.0, description='Covariance:')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "de3d16c3813943a492951de7dea87dfa",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3ef1e07af52a46d6a4d5d44c813e17c1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_4()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "714e099b",
   "metadata": {},
   "source": [
    "## Exercise 5:\n",
    "\n",
    "\n",
    "Now suppose you are have a loaded 4-sided dice (it is loaded so that it lands twice as often on side 2 compared to the other sides): \n",
    "\n",
    "\n",
    "<img src=\"./images/4_side_uf.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "You are throwing it two times and recording the sum of each throw. Which of the following `probability mass functions` will be the one you should get?\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"./images/hist_sum_4_4l.png\" style=\"height: 300px;\"/> </td>\n",
    "<td> <img src=\"./images/hist_sum_4_3l.png\" style=\"height: 300px;\"/> </td>\n",
    "<td> <img src=\"./images/hist_sum_4_uf.png\" style=\"height: 300px;\"/> </td>\n",
    "</tr></table>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ecb27c1b",
   "metadata": {},
   "source": [
    "Hints: \n",
    "- You can use the `p` parameter of [np.random.choice](https://numpy.org/doc/stable/reference/random/generated/numpy.random.choice.html) to simulate a loaded dice."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a35573ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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c3PVs2fPItcnJyfrv//9r2rVquWYNatbt64uXryow4cPl7guAGXDTdAAKoSbm5t69eqlXr166aWXXtLo0aM1depUjRw5Ui4uBf/tZRiGo//ly5eLHKdq1aqOzzabzen71bb8/Pxi6zAMQzabrVBbRatevfo11+fn5ysgIED/8z//U2hdgwYNKqosAP8fM0AAKoWfn5/Onz8v6dc/8BkZGY71v70hurz3u337dqe2HTt2qEWLFnJ1dS3xOK1bt9auXbuc2n7//bf+9Kc/qXr16tq4cWOR6zt27KhDhw7J09NTd955p9PC02RAxSMAAShXp06d0j333KMPP/xQX3/9tY4cOaKPP/5Ys2bN0sCBAyUVzI507txZr7/+ur7//ntt3bpVL774YoXU89xzz2njxo16+eWXdfDgQS1btkzvvvuunn/++VKNM27cOC1ZskRLlizRwYMHNXXqVH333XfF9ndzc9PEiRP1t7/9TcuXL9fhw4e1a9cuLV68WJL06KOPqn79+ho4cKC2bdumI0eOaMuWLRo3bpx++umn6zpmAH+MS2AAylXNmjUVFBSk2bNn6/Dhw7p8+bK8vb31xBNPaPLkyY5+S5Ys0eOPP67AwEC1bNlSs2bNUlhYWLnX07FjR3300Ud66aWX9PLLL6tRo0aaMWOGRo4cWapxwsPDdfjwYU2cOFEXL17U4MGD9fTTT2v9+vXFbjNlyhRVqVJFL730ko4fP65GjRppzJgxkqTbbrtNW7du1cSJE/Xggw/q7Nmzuv3229WzZ0+5u7tfzyEDKAGbURkXwwEAAG4gXAIDAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACW8/8A9ZxyaTkXmR8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4], p=[1/5, 2/5, 1/5, 1/5], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4], p=[1/5, 2/5, 1/5, 1/5], size=num_trials)\n",
    "sums = first_throw + second_throw\n",
    "\n",
    "plt.hist(sums, bins=range(2, 10), align='left', rwidth=0.8, density=True)\n",
    "plt.xticks(range(2, 9))\n",
    "plt.xlabel('Sum of dice')\n",
    "plt.ylabel('Probability')\n",
    "plt.title('Histogram of sum')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3104e647",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0af24b755281400592aee22bbb601cae",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='Your answer:', options=('left', 'center', 'right'), value='left')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0897be884f634b94a0a5e37f05c05d96",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9dc080702992482eaea077d75ec36778",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_5()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0d0f3429",
   "metadata": {},
   "source": [
    "## Exercise 6:\n",
    "\n",
    "You have a 6-sided dice that is loaded so that it lands twice as often on side 3 compared to the other sides:\n",
    "\n",
    "<img src=\"./images/loaded_6_side.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "You record the sum of throwing it twice. What is the highest value (of the sum) that will yield a cumulative probability lower or equal to 0.5?\n",
    "\n",
    "<img src=\"./images/loaded_6_cdf.png\" style=\"height: 300px;\"/>\n",
    "\n",
    "Hints:\n",
    "- The probability of side 3 is equal to $\\frac{2}{7}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "10feaaa8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The highest value (of the sum) that will yield a cumulative probability lower or equal to 0.5 is 6\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "dice = [1,2,3,4,5,6]\n",
    "probs = [1/7, 1/7, 2/7, 1/7, 1/7, 1/7]\n",
    "\n",
    "first_throw = np.random.choice(dice, p=probs, size=num_trials)\n",
    "second_throw = np.random.choice(dice, p=probs, size=num_trials)\n",
    "\n",
    "sums = first_throw + second_throw\n",
    "\n",
    "for i in range(2, 13):\n",
    "    cdf = (sums <= i).mean()\n",
    "    if cdf > 0.5:\n",
    "        break\n",
    "\n",
    "print(\"The highest value (of the sum) that will yield a cumulative probability lower or equal to 0.5 is\", i-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "963e5763",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b09a071ff6574c129670027434608915",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "IntSlider(value=2, continuous_update=False, description='Sum:', max=12, min=2)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7102a00fe4d44b84a770a2fe2248191f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4fd3f9958f174c7ea3caaf802555bd4b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_6()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6684426",
   "metadata": {},
   "source": [
    "## Exercise 7:\n",
    "\n",
    "Given a 6-sided fair dice you try a new game. You only throw the dice a second time if the result of the first throw is **lower** or equal to 3. Which of the following `probability mass functions` will be the one you should get given this new constraint?\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"./images/6_sided_cond_green.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_blue.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_red.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_brown.png\" style=\"height: 250px;\"/> </td>\n",
    "\n",
    "</tr></table>\n",
    "\n",
    "Hints:\n",
    "- You can simulate the second throws as a numpy array and then make the values that met a certain criteria equal to 0 by using [np.where](https://numpy.org/doc/stable/reference/generated/numpy.where.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9e64d178",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA38UlEQVR4nO3de1xVVf7/8fcB9EAq5A3UQkQrBU1FSAXzloKZmpaONCVqaWY6pVKNIpm3KdTpgpqXsTHRGokatZyyMfTh9aH2VQSdJkfN0TCFITUBdUSF/fvDn2c6AQZ4DkfYr+fjsR+x11l7nc9CkzdrX47FMAxDAAAAJuLm6gIAAAAqGwEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIqGaSkpJksVi0b9++El/v37+/mjVrZtfWrFkzjRw5slzvs2vXLs2YMUPnz5+vWKEmlJKSotatW8vLy0sWi0UZGRmuLgkwLQIQAK1bt07Tpk0r1zG7du3SzJkzCUBl9OOPPyomJkYtWrTQ3//+d+3evVv33Xefq8sCTMvD1QUAcL2QkBBXl1BuV69elcVikYdH1fhn7MiRI7p69aqGDRum7t27u7ocwPRYAQJQ7BRYUVGR/vCHP6hly5by8vLSnXfeqbZt22r+/PmSpBkzZuiVV16RJAUGBspischisWjr1q224+fNm6dWrVrJarXK19dXw4cP1w8//GD3voZh6I033lBAQIA8PT0VFham1NRU9ejRQz169LD127p1qywWiz744AO99NJLuuuuu2S1WvXdd9/pxx9/1Lhx4xQcHKzatWvL19dXDz30kHbs2GH3XidOnJDFYtEf//hHzZ07V82aNZOXl5d69OhhCydTpkxRkyZN5OPjo8cee0w5OTll+v6tX79e4eHhuuOOO1SnTh1FRkZq9+7dttdHjhypBx98UJIUHR0ti8ViN79funTpkl5++WUFBgbK09NT9erVU1hYmJKTk219fvk9+vl7/fwUpzPnDVRlVeNXJwDlVlhYqGvXrhVrNwzjV4+dN2+eZsyYoVdffVXdunXT1atX9a9//ct2umv06NE6d+6cFi5cqLVr16px48aSpODgYEnS888/r2XLlul3v/ud+vfvrxMnTmjatGnaunWr9u/frwYNGkiS4uPjlZCQoDFjxujxxx/XyZMnNXr0aF29erXE00NxcXEKDw/X0qVL5ebmJl9fX/3444+SpOnTp6tRo0a6cOGC1q1bpx49emjz5s3FQsKiRYvUtm1bLVq0SOfPn9dLL72kAQMGqFOnTqpRo4bef/99ff/993r55Zc1evRorV+//qbfq9WrV+upp55SVFSUkpOTVVBQoHnz5tne/8EHH9S0adPUsWNHjR8/Xm+88YZ69uwpb2/vUseMjY3VBx98oD/84Q8KCQnRxYsX9c033+js2bO/+mdXGkfPG6jyDADVyooVKwxJN90CAgLsjgkICDBGjBhh2+/fv7/Rvn37m77PH//4R0OScfz4cbv2Q4cOGZKMcePG2bV//fXXhiRj6tSphmEYxrlz5wyr1WpER0fb9du9e7chyejevbutbcuWLYYko1u3br86/2vXrhlXr141evXqZTz22GO29uPHjxuSjHbt2hmFhYW29sTEREOS8eijj9qNM3HiREOSkZubW+p7FRYWGk2aNDHuv/9+uzHz8/MNX19fIyIiotgcPvnkk1+dQ5s2bYxBgwbdtE/37t3tvkc3jBgxwu7P1xnzBqoDToEB1dSqVau0d+/eYtuNUzE307FjRx04cEDjxo3Txo0blZeXV+b33bJliyQVu6usY8eOCgoK0ubNmyVJe/bsUUFBgYYOHWrXr3PnzsXuUrth8ODBJbYvXbpUHTp0kKenpzw8PFSjRg1t3rxZhw4dKtb3kUcekZvb//7pCwoKkiT169fPrt+N9szMzFJmKh0+fFinT59WTEyM3Zi1a9fW4MGDtWfPHl26dKnU40vTsWNHffnll5oyZYq2bt2q//73v+Ue45ccOW+gOiAAAdVUUFCQwsLCim0+Pj6/emxcXJzefPNN7dmzR3379lX9+vXVq1evUm+t/7kbp2lunBb7uSZNmthev/FfPz+/Yv1KaittzLffflvPP/+8OnXqpDVr1mjPnj3au3evHn744RKDQ7169ez2a9asedP2y5cvl1jLz+dQ2lyLior0008/lXp8aRYsWKDJkyfr008/Vc+ePVWvXj0NGjRIR48eLfdYNzhy3kB1QAACUIyHh4diY2O1f/9+nTt3TsnJyTp58qT69Onzqysa9evXlyRlZWUVe+306dO2639u9PvPf/5TrF92dnaJY1sslmJtH374oXr06KElS5aoX79+6tSpk8LCwpSfn3/z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y86cBgAAqEJcGoBSUlI0ceJExcfHKz09XV27dlXfvn2VmZlZYv/jx4/rkUceUdeuXZWenq6pU6fqxRdf1Jo1a+z6eXt7Kysry27z9PSsjCkBAIAqwKUXQb/99tsaNWqURo8eLUlKTEzUxo0btWTJEiUkJBTrv3TpUjVt2lSJiYmSpKCgIO3bt09vvvmmBg8ebOtnsVjUqFGjSpkDAACoely2AnTlyhWlpaUpKirKrj0qKkq7du0q8Zjdu3cX69+nTx/t27dPV69etbVduHBBAQEBuvvuu9W/f3+lp6c7fgIAAKDKclkAOnPmjAoLC+Xn52fX7ufnp+zs7BKPyc7OLrH/tWvXdObMGUlSq1atlJSUpPXr1ys5OVmenp7q0qWLjh49WmotBQUFysvLs9sAAED15fKLoC0Wi92+YRjF2n6t/8/bO3furGHDhqldu3bq2rWrPv74Y913331auHBhqWMmJCTIx8fHtvn7+1d0OgAAoApwWQBq0KCB3N3di6325OTkFFvluaFRo0Yl9vfw8FD9+vVLPMbNzU0PPPDATVeA4uLilJuba9tOnjxZztkAAICqxGUBqGbNmgoNDVVqaqpde2pqqiIiIko8Jjw8vFj/r776SmFhYapRo0aJxxiGoYyMDDVu3LjUWqxWq7y9ve02AABQfbn0FFhsbKz+/Oc/6/3339ehQ4c0adIkZWZmauzYsZKur8wMHz7c1n/s2LH6/vvvFRsbq0OHDun999/X8uXL9fLLL9v6zJw5Uxs3btS///1vZWRkaNSoUcrIyLCNCQAA4NLb4KOjo3X27FnNmjVLWVlZatOmjTZs2KCAgABJUlZWlt0zgQIDA7VhwwZNmjRJixYtUpMmTbRgwQK7W+DPnz+vMWPGKDs7Wz4+PgoJCdH27dvVsWPHSp8fAAC4Pbn8w1DHjRuncePGlfhaUlJSsbbu3btr//79pY73zjvv6J133nFUeQAAoBpy+V1gAAAAlY0ABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATMfD1QWYUbMpX7i6hAo5Maefq0sAAMAhCEAAAFRRVfUXasn1v1RzCgwAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJiOywPQ4sWLFRgYKE9PT4WGhmrHjh037b9t2zaFhobK09NTzZs319KlS4v1WbNmjYKDg2W1WhUcHKx169Y5q3wAAFAFuTQApaSkaOLEiYqPj1d6erq6du2qvn37KjMzs8T+x48f1yOPPKKuXbsqPT1dU6dO1Ysvvqg1a9bY+uzevVvR0dGKiYnRgQMHFBMTo6FDh+rrr7+urGkBAIDbnEsD0Ntvv61Ro0Zp9OjRCgoKUmJiovz9/bVkyZIS+y9dulRNmzZVYmKigoKCNHr0aD3zzDN68803bX0SExMVGRmpuLg4tWrVSnFxcerVq5cSExMraVYAAOB257IAdOXKFaWlpSkqKsquPSoqSrt27SrxmN27dxfr36dPH+3bt09Xr169aZ/SxgQAAObj4ao3PnPmjAoLC+Xn52fX7ufnp+zs7BKPyc7OLrH/tWvXdObMGTVu3LjUPqWNKUkFBQUqKCiw7efm5kqS8vLyyjWnsioquOSUcZ2tvN8PM8yzqs5RMsc8+TtbMuZ5ezPD/5uSc37G3hjTMIxf7euyAHSDxWKx2zcMo1jbr/X/ZXt5x0xISNDMmTOLtfv7+5deuAn5JLq6gsrBPKsPM8xRYp7VDfO8dfn5+fLx8blpH5cFoAYNGsjd3b3YykxOTk6xFZwbGjVqVGJ/Dw8P1a9f/6Z9ShtTkuLi4hQbG2vbLyoq0rlz51S/fv2bBqfbTV5envz9/XXy5El5e3u7uhynYZ7VhxnmKDHP6oZ53r4Mw1B+fr6aNGnyq31dFoBq1qyp0NBQpaam6rHHHrO1p6amauDAgSUeEx4err/97W92bV999ZXCwsJUo0YNW5/U1FRNmjTJrk9ERESptVitVlmtVru2O++8s7xTum14e3tXmb+st4J5Vh9mmKPEPKsb5nl7+rWVnxtcegosNjZWMTExCgsLU3h4uJYtW6bMzEyNHTtW0vWVmVOnTmnVqlWSpLFjx+rdd99VbGysnn32We3evVvLly9XcnKybcwJEyaoW7dumjt3rgYOHKjPPvtMmzZt0s6dO10yRwAAcPtxaQCKjo7W2bNnNWvWLGVlZalNmzbasGGDAgICJElZWVl2zwQKDAzUhg0bNGnSJC1atEhNmjTRggULNHjwYFufiIgIffTRR3r11Vc1bdo0tWjRQikpKerUqVOlzw8AANyeXH4R9Lhx4zRu3LgSX0tKSirW1r17d+3fv/+mYw4ZMkRDhgxxRHlVitVq1fTp04udzqtumGf1YYY5SsyzumGe1YPFKMu9YgAAANWIyz8LDAAAoLIRgAAAgOkQgAAAgOkQgAAAgOkQgKqBhIQEPfDAA6pTp458fX01aNAgHT582NVlOdSSJUvUtm1b2wO5wsPD9eWXX7q6LKdLSEiQxWLRxIkTXV2KQ82YMUMWi8Vua9SokavLcopTp05p2LBhql+/vu644w61b99eaWlpri7LoZo1a1bsz9NisWj8+PGuLs1hrl27pldffVWBgYHy8vJS8+bNNWvWLBUVFbm6NIfLz8/XxIkTFRAQIC8vL0VERGjv3r2uLsvhXH4bPG7dtm3bNH78eD3wwAO6du2a4uPjFRUVpW+//Va1atVydXkOcffdd2vOnDm65557JEkrV67UwIEDlZ6ertatW7u4OufYu3evli1bprZt27q6FKdo3bq1Nm3aZNt3d3d3YTXO8dNPP6lLly7q2bOnvvzyS/n6+urYsWNV+knzJdm7d68KCwtt+998840iIyP1m9/8xoVVOdbcuXO1dOlSrVy5Uq1bt9a+ffv09NNPy8fHRxMmTHB1eQ41evRoffPNN/rggw/UpEkTffjhh+rdu7e+/fZb3XXXXa4uz3EMVDs5OTmGJGPbtm2uLsWp6tata/z5z392dRlOkZ+fb9x7771Gamqq0b17d2PChAmuLsmhpk+fbrRr187VZTjd5MmTjQcffNDVZVS6CRMmGC1atDCKiopcXYrD9OvXz3jmmWfs2h5//HFj2LBhLqrIOS5dumS4u7sbn3/+uV17u3btjPj4eBdV5RycAquGcnNzJUn16tVzcSXOUVhYqI8++kgXL15UeHi4q8txivHjx6tfv37q3bu3q0txmqNHj6pJkyYKDAzUE088oX//+9+uLsnh1q9fr7CwMP3mN7+Rr6+vQkJC9N5777m6LKe6cuWKPvzwQz3zzDNV6sOkf82DDz6ozZs368iRI5KkAwcOaOfOnXrkkUdcXJljXbt2TYWFhfL09LRr9/Lyqn4fKeXqBAbHKioqMgYMGFAtf+s8ePCgUatWLcPd3d3w8fExvvjiC1eX5BTJyclGmzZtjP/+97+GYRjVcgVow4YNxl//+lfj4MGDtlUuPz8/48yZM64uzaGsVqthtVqNuLg4Y//+/cbSpUsNT09PY+XKla4uzWlSUlIMd3d349SpU64uxaGKioqMKVOmGBaLxfDw8DAsFovxxhtvuLospwgPDze6d+9unDp1yrh27ZrxwQcfGBaLxbjvvvtcXZpDEYCqmXHjxhkBAQHGyZMnXV2KwxUUFBhHjx419u7da0yZMsVo0KCB8c9//tPVZTlUZmam4evra2RkZNjaqmMA+qULFy4Yfn5+xltvveXqUhyqRo0aRnh4uF3bCy+8YHTu3NlFFTlfVFSU0b9/f1eX4XDJycnG3XffbSQnJxsHDx40Vq1aZdSrV89ISkpydWkO99133xndunUzJBnu7u7GAw88YDz11FNGUFCQq0tzKAJQNfK73/3OuPvuu41///vfri6lUvTq1csYM2aMq8twqHXr1tn+0bmxSTIsFovh7u5uXLt2zdUlOk3v3r2NsWPHuroMh2ratKkxatQou7bFixcbTZo0cVFFznXixAnDzc3N+PTTT11disPdfffdxrvvvmvXNnv2bKNly5Yuqsj5Lly4YJw+fdowDMMYOnSo8cgjj7i4IsfiLrBqwDAMvfDCC1q3bp22bt2qwMBAV5dUKQzDUEFBgavLcKhevXrpH//4h13b008/rVatWmny5MnV8k4pSSooKNChQ4fUtWtXV5fiUF26dCn2SIojR44oICDARRU514oVK+Tr66t+/fq5uhSHu3Tpktzc7C+bdXd3r5a3wd9Qq1Yt1apVSz/99JM2btyoefPmubokhyIAVQPjx4/X6tWr9dlnn6lOnTrKzs6WJPn4+MjLy8vF1TnG1KlT1bdvX/n7+ys/P18fffSRtm7dqr///e+uLs2h6tSpozZt2ti11apVS/Xr1y/WXpW9/PLLGjBggJo2baqcnBz94Q9/UF5enkaMGOHq0hxq0qRJioiI0BtvvKGhQ4fq//7v/7Rs2TItW7bM1aU5XFFRkVasWKERI0bIw6P6/WgZMGCAXn/9dTVt2lStW7dWenq63n77bT3zzDOuLs3hNm7cKMMw1LJlS3333Xd65ZVX1LJlSz399NOuLs2xXLwCBQeQVOK2YsUKV5fmMM8884wREBBg1KxZ02jYsKHRq1cv46uvvnJ1WZWiOl4DFB0dbTRu3NioUaOG0aRJE+Pxxx+vdtdz3fC3v/3NaNOmjWG1Wo1WrVoZy5Ytc3VJTrFx40ZDknH48GFXl+IUeXl5xoQJE4ymTZsanp6eRvPmzY34+HijoKDA1aU5XEpKitG8eXOjZs2aRqNGjYzx48cb58+fd3VZDmcxDMNwYf4CAACodDwHCAAAmA4BCAAAmA4BCAAAmA4BCAAAmA4BCAAAmA4BCAAAmA4BCAAAmA4BCIDpXbp0SYMHD5a3t7csFovOnz9fpuNmzJih9u3b2/ZHjhypQYMGOaVGAI5FAALgcDk5OXruuefUtGlTWa1WNWrUSH369NHu3btdXVqJVq5cqR07dmjXrl3KysqSj49PhcaZP3++kpKSHFscAKeofh/YAsDlBg8erKtXr2rlypVq3ry5/vOf/2jz5s06d+6cq0sr0bFjxxQUFHTLn7dW0eAEoPKxAgTAoc6fP6+dO3dq7ty56tmzpwICAtSxY0fFxcXZPiX8xIkTslgsysjIsDvOYrFo69atkqStW7fKYrFo48aNCgkJkZeXlx566CHl5OToyy+/VFBQkLy9vfXb3/5Wly5dumlNa9asUevWrWW1WtWsWTO99dZbttd69Oiht956S9u3b5fFYlGPHj1KHWfOnDny8/NTnTp1NGrUKF2+fNnu9V+eAisqKtLcuXN1zz33yGq1qmnTpnr99ddtr586dUrR0dGqW7eu6tevr4EDB+rEiRM3/wYDcAgCEACHql27tmrXrq1PP/1UBQUFtzzejBkz9O6772rXrl06efKkhg4dqsTERK1evVpffPGFUlNTtXDhwlKPT0tL09ChQ/XEE0/oH//4h2bMmKFp06bZTlWtXbtWzz77rMLDw5WVlaW1a9eWOM7HH3+s6dOn6/XXX9e+ffvUuHFjLV68+Ka1x8XFae7cuZo2bZq+/fZbrV69Wn5+fpKuX3fUs2dP1a5dW9u3b9fOnTtVu3ZtPfzww7py5UrFvlkAys7Vn8YKoPr561//atStW9fw9PQ0IiIijLi4OOPAgQO2148fP25IMtLT021tP/30kyHJ2LJli2EYhrFlyxZDkrFp0yZbn4SEBEOScezYMVvbc889Z/Tp06fUWp588kkjMjLSru2VV14xgoODbfsTJkwwunfvftM5hYeHG2PHjrVr69Spk9GuXTvb/ogRI4yBAwcahnH908OtVqvx3nvvlTje8uXLjZYtWxpFRUW2toKCAsPLy8vYuHHjTWsBcOtYAQLgcIMHD9bp06e1fv169enTR1u3blWHDh0qdIFw27ZtbV/7+fnpjjvuUPPmze3acnJySj3+0KFD6tKli11bly5ddPToURUWFpa5jkOHDik8PNyu7Zf7v+xfUFCgXr16lfh6WlqavvvuO9WpU8e2alavXj1dvnxZx44dK3NdACqGi6ABOIWnp6ciIyMVGRmp1157TaNHj9b06dM1cuRIubld/93LMAxb/6tXr5Y4To0aNWxfWywWu/0bbUVFRaXWYRiGLBZLsTZn8/LyuunrRUVFCg0N1V/+8pdirzVs2NBZZQH4/1gBAlApgoODdfHiRUn/+wGflZVle/3nF0Q7+n137txp17Zr1y7dd999cnd3L/M4QUFB2rNnj13bL/d/7t5775WXl5c2b95c4usdOnTQ0aNH5evrq3vuucdu424ywPkIQAAc6uzZs3rooYf04Ycf6uDBgzp+/Lg++eQTzZs3TwMHDpR0fXWkc+fOmjNnjr799ltt375dr776qlPqeemll7R582bNnj1bR44c0cqVK/Xuu+/q5ZdfLtc4EyZM0Pvvv6/3339fR44c0fTp0/XPf/6z1P6enp6aPHmyfv/732vVqlU6duyY9uzZo+XLl0uSnnrqKTVo0EADBw7Ujh07dPz4cW3btk0TJkzQDz/8cEtzBvDrOAUGwKFq166tTp066Z133tGxY8d09epV+fv769lnn9XUqVNt/d5//30988wzCgsLU8uWLTVv3jxFRUU5vJ4OHTro448/1muvvabZs2ercePGmjVrlkaOHFmucaKjo3Xs2DFNnjxZly9f1uDBg/X8889r48aNpR4zbdo0eXh46LXXXtPp06fVuHFjjR07VpJ0xx13aPv27Zo8ebIef/xx5efn66677lKvXr3k7e19K1MGUAYWozJOhgMAANxGOAUGAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABM5/8B7lazHtWrsKMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "\n",
    "second_throw = np.where(first_throw <= 3, second_throw, 0)\n",
    "final_outcomes = first_throw + second_throw\n",
    "\n",
    "plt.hist(final_outcomes, bins=range(2, 11), align='left', rwidth=0.8, density=True)\n",
    "plt.xticks(range(2, 10))\n",
    "plt.xlabel('Sum of dice')\n",
    "plt.ylabel('Probability')\n",
    "plt.title('Histogram of sum')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "82a4db40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1944748e06004c0fa5104c3936835e1e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='Your answer:', options=('left-most', 'left-center', 'right-center', 'right-most'), …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ad78254c8465422085abaade527ab201",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e25c36f46f5b4859b2fb5b1ebf88eccf",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_7()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba973eaf",
   "metadata": {},
   "source": [
    "## Exercise 8:\n",
    "\n",
    "Given the same scenario as in the previous exercise but with the twist that you only throw the dice a second time if the result of the first throw is **greater** or equal to 3. Which of the following `probability mass functions` will be the one you should get given this new constraint?\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"./images/6_sided_cond_green2.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_blue2.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_red2.png\" style=\"height: 250px;\"/> </td>\n",
    "<td> <img src=\"./images/6_sided_cond_brown2.png\" style=\"height: 250px;\"/> </td>\n",
    "\n",
    "</tr></table>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "4d25300f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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4uLilJ+fr+joaEkXLk2NHz/e0T86OlqHDh1SfHy8cnNztXr1aq1atUrTpk1z9Hn88cd1/PhxTZ06VQcOHNB7772n+fPna8qUKVd9fgAAoGky9TH4yMhIHT9+XHPnzlVBQYGCgoKUlpbmeGy9oKDA6Z1AAQEBSktLU1xcnJYuXSofHx+9+OKLjkfgJcnX11dbt25VXFyc+vTpo65du2rq1KmaPn36VZ8fAABomkwNQJIUExOjmJiYavetWbOmStvAgQO1d+/eS44ZGhqq3bt3N0R5AADgGmT6U2AAAABXGwEIAABYjumXwAA0PP8Z75ly3oML7jHlvABQV6wAAQAAy2EFCACARmbWqqzEymxNWAECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWY3oAWrZsmQICAuTh4aHg4GDt2rXrkv137typ4OBgeXh4qHv37lq+fHmNfdevXy+bzaZRo0Y1cNUAAKA5MzUAbdiwQbGxsUpMTFR2drbCw8M1fPhw5efnV9s/Ly9Pd999t8LDw5Wdna2ZM2fqiSee0MaNG6v0PXTokKZNm6bw8PDGngYAAGhmTA1Aixcv1uTJkxUVFaXAwEClpKTI19dXqamp1fZfvny5unXrppSUFAUGBioqKkqTJk3SokWLnPpVVFTokUce0TPPPKPu3btfjakAAIBmxLQAVFZWpqysLEVERDi1R0REKCMjo9pjMjMzq/QfNmyY9uzZo/Lyckfb3Llz1alTJ02ePLlWtZSWlqqkpMRpAwAA1y7TAlBxcbEqKirk5eXl1O7l5aXCwsJqjyksLKy2//nz51VcXCxJ+uc//6lVq1Zp5cqVta4lOTlZnp6ejs3X17eOswEAAM2J6TdB22w2p8+GYVRpu1z/i+2nT5/Wo48+qpUrV6pjx461riEhIUGnTp1ybIcPH67DDAAAQHPjataJO3bsKBcXlyqrPUVFRVVWeS7q0qVLtf1dXV3VoUMHffHFFzp48KBGjBjh2F9ZWSlJcnV11f79+9WjR48q49rtdtnt9iudEgAAaCZMWwFyd3dXcHCw0tPTndrT09MVFhZW7TGhoaFV+m/dulUhISFyc3NTr169tG/fPuXk5Di2++67T4MHD1ZOTg6XtgAAgCQTV4AkKT4+XuPGjVNISIhCQ0O1YsUK5efnKzo6WtKFS1NHjhzRa6+9JkmKjo7WkiVLFB8fr8cee0yZmZlatWqV1q1bJ0ny8PBQUFCQ0zmuv/56SarSDgAArMvUABQZGanjx49r7ty5KigoUFBQkNLS0uTn5ydJKigocHonUEBAgNLS0hQXF6elS5fKx8dHL774okaPHm3WFAAAQDNkagCSpJiYGMXExFS7b82aNVXaBg4cqL1799Z6/OrGAAAA1mb6U2AAAABXGwEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYjqvZBQDNlf+M90w798EF95h2bgDXDiv/OcYKEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBzTA9CyZcsUEBAgDw8PBQcHa9euXZfsv3PnTgUHB8vDw0Pdu3fX8uXLnfavXLlS4eHhateundq1a6e77rpLn3zySWNOAQAANDOmBqANGzYoNjZWiYmJys7OVnh4uIYPH678/Pxq++fl5enuu+9WeHi4srOzNXPmTD3xxBPauHGjo8+OHTv08MMPa/v27crMzFS3bt0UERGhI0eOXK1pAQCAJs7UALR48WJNnjxZUVFRCgwMVEpKinx9fZWamlpt/+XLl6tbt25KSUlRYGCgoqKiNGnSJC1atMjR580331RMTIxuueUW9erVSytXrlRlZaW2bdt2taYFAACaONMCUFlZmbKyshQREeHUHhERoYyMjGqPyczMrNJ/2LBh2rNnj8rLy6s95uzZsyovL1f79u0bpnAAANDsuZp14uLiYlVUVMjLy8up3cvLS4WFhdUeU1hYWG3/8+fPq7i4WN7e3lWOmTFjhrp27aq77rqrxlpKS0tVWlrq+FxSUlKXqQAAgGbG9JugbTab02fDMKq0Xa5/de2StHDhQq1bt06bNm2Sh4dHjWMmJyfL09PTsfn6+tZlCgAAoJkxLQB17NhRLi4uVVZ7ioqKqqzyXNSlS5dq+7u6uqpDhw5O7YsWLdL8+fO1detW9enT55K1JCQk6NSpU47t8OHD9ZgRAABoLkwLQO7u7goODlZ6erpTe3p6usLCwqo9JjQ0tEr/rVu3KiQkRG5ubo62559/Xs8++6zef/99hYSEXLYWu92utm3bOm0AAODaZeolsPj4eL388stavXq1cnNzFRcXp/z8fEVHR0u6sDIzfvx4R//o6GgdOnRI8fHxys3N1erVq7Vq1SpNmzbN0WfhwoWaNWuWVq9eLX9/fxUWFqqwsFDff//9VZ8fAABomky7CVqSIiMjdfz4cc2dO1cFBQUKCgpSWlqa/Pz8JEkFBQVO7wQKCAhQWlqa4uLitHTpUvn4+OjFF1/U6NGjHX2WLVumsrIyPfjgg07nSkpK0pw5c67KvAAAQNNmagCSpJiYGMXExFS7b82aNVXaBg4cqL1799Y43sGDBxuoMgAAcK0y/SkwAACAq40ABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALMf0ALRs2TIFBATIw8NDwcHB2rVr1yX779y5U8HBwfLw8FD37t21fPnyKn02btyo3r17y263q3fv3nr77bcbq3wAANAMmRqANmzYoNjYWCUmJio7O1vh4eEaPny48vPzq+2fl5enu+++W+Hh4crOztbMmTP1xBNPaOPGjY4+mZmZioyM1Lhx4/TZZ59p3Lhxeuihh/Txxx9frWkBAIAmztQAtHjxYk2ePFlRUVEKDAxUSkqKfH19lZqaWm3/5cuXq1u3bkpJSVFgYKCioqI0adIkLVq0yNEnJSVFQ4cOVUJCgnr16qWEhAQNGTJEKSkpV2lWAACgqTMtAJWVlSkrK0sRERFO7REREcrIyKj2mMzMzCr9hw0bpj179qi8vPySfWoaEwAAWI+rWScuLi5WRUWFvLy8nNq9vLxUWFhY7TGFhYXV9j9//ryKi4vl7e1dY5+axpSk0tJSlZaWOj6fOnVKklRSUlKnOdVWZenZRhn3ci43H7Pqkhrvd92YmvLvi/+NOWuqdUmXrq2p1iXx3/LHmmpdUvP939iVjGkYxmX7mhaALrLZbE6fDcOo0na5/j9ur+uYycnJeuaZZ6q0+/r61lx4M+SZYnYFNWvKtTVFTfX3RV1111Rro666aap1SU23tsas6/Tp0/L09LxkH9MCUMeOHeXi4lJlZaaoqKjKCs5FXbp0qba/q6urOnTocMk+NY0pSQkJCYqPj3d8rqys1IkTJ9ShQ4dLBidcUFJSIl9fXx0+fFht27Y1uxwnTbU26qob6qq7plobddUNddWNYRg6ffq0fHx8LtvXtADk7u6u4OBgpaen6/7773e0p6ena+TIkdUeExoaqr/97W9ObVu3blVISIjc3NwcfdLT0xUXF+fUJywsrMZa7Ha77Ha7U9v1119f1ylZXtu2bZvU/yP8UFOtjbrqhrrqrqnWRl11Q121d7mVn4tMvQQWHx+vcePGKSQkRKGhoVqxYoXy8/MVHR0t6cLKzJEjR/Taa69JkqKjo7VkyRLFx8frscceU2ZmplatWqV169Y5xpw6daruuOMOPffccxo5cqT++te/6oMPPtBHH31kyhwBAEDTY2oAioyM1PHjxzV37lwVFBQoKChIaWlp8vPzkyQVFBQ4vRMoICBAaWlpiouL09KlS+Xj46MXX3xRo0ePdvQJCwvT+vXrNWvWLM2ePVs9evTQhg0b1L9//6s+PwAA0DSZfhN0TEyMYmJiqt23Zs2aKm0DBw7U3r17Lznmgw8+qAcffLAhykMt2O12JSUlVbmM2BQ01dqoq26oq+6aam3UVTfU1XhsRm2eFQMAALiGmP5dYAAAAFcbAQgAAFgOAQgAAFgOAQgAAFgOAQj1lpycrP/7v/9TmzZt1LlzZ40aNUr79+83uyylpqaqT58+jhd0hYaG6u9//7vZZVWRnJwsm82m2NhYs0vRnDlzZLPZnLYuXbqYXZYk6ciRI3r00UfVoUMHXXfddbrllluUlZVlak3+/v5Vfl82m01Tpkwxta7z589r1qxZCggIUMuWLdW9e3fNnTtXlZWVptYlXfhqgtjYWPn5+ally5YKCwvTp59+etXr+PDDDzVixAj5+PjIZrPpnXfecdpvGIbmzJkjHx8ftWzZUoMGDdIXX3xhel2bNm3SsGHD1LFjR9lsNuXk5DR6TZerq7y8XNOnT9fNN9+sVq1aycfHR+PHj9fRo0evSm1XigCEetu5c6emTJmi3bt3Kz09XefPn1dERITOnDljal0/+clPtGDBAu3Zs0d79uzRnXfeqZEjR16VP8Rq69NPP9WKFSvUp08fs0txuOmmm1RQUODY9u3bZ3ZJ+u677zRgwAC5ubnp73//u/7973/rD3/4g+lvav/000+dflfp6emSpF/84hem1vXcc89p+fLlWrJkiXJzc7Vw4UI9//zzeumll0ytS5KioqKUnp6u119/Xfv27VNERITuuusuHTly5KrWcebMGfXt21dLliypdv/ChQu1ePFiLVmyRJ9++qm6dOmioUOH6vTp06bWdebMGQ0YMEALFixo1DrqUtfZs2e1d+9ezZ49W3v37tWmTZt04MAB3XfffVe1xnozgAZSVFRkSDJ27txpdilVtGvXznj55ZfNLsMwDMM4ffq0ccMNNxjp6enGwIEDjalTp5pdkpGUlGT07dvX7DKqmD59unH77bebXcZlTZ061ejRo4dRWVlpah333HOPMWnSJKe2Bx54wHj00UdNquiCs2fPGi4uLsa7777r1N63b18jMTHRpKoMQ5Lx9ttvOz5XVlYaXbp0MRYsWOBoO3funOHp6WksX77ctLp+KC8vz5BkZGdnX7V6LrpUXRd98sknhiTj0KFDV6eoK8AKEBrMqVOnJEnt27c3uZL/qaio0Pr163XmzBmFhoaaXY4kacqUKbrnnnt01113mV2Kky+//FI+Pj4KCAjQmDFj9M0335hdkjZv3qyQkBD94he/UOfOndWvXz+tXLnS7LKclJWV6Y033tCkSZNM//Lk22+/Xdu2bdOBAwckSZ999pk++ugj3X333abWdf78eVVUVMjDw8OpvWXLlk3qa4ry8vJUWFioiIgIR5vdbtfAgQOVkZFhYmXNx6lTp2Sz2Uxfpa0N098EjWuDYRiKj4/X7bffrqCgILPL0b59+xQaGqpz586pdevWevvtt9W7d2+zy9L69eu1d+9eU+59uJT+/fvrtdde04033qj//ve/+v3vf6+wsDB98cUX6tChg2l1ffPNN0pNTVV8fLxmzpypTz75RE888YTsdrvGjx9vWl0/9M477+jkyZOaOHGi2aVo+vTpOnXqlHr16iUXFxdVVFRo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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "first_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "second_throw = np.random.choice([1, 2, 3, 4, 5, 6], size=num_trials)\n",
    "\n",
    "second_throw = np.where(first_throw >= 3, second_throw, 0)\n",
    "final_outcomes = first_throw + second_throw\n",
    "\n",
    "plt.hist(final_outcomes, bins=range(1, 14), align='left', rwidth=0.8, density=True)\n",
    "plt.xticks(range(2, 13))\n",
    "plt.xlabel('Sum of dice')\n",
    "plt.ylabel('Probability')\n",
    "plt.title('Histogram of sum')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "33bb9fd2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b78103c55d4d4133bd6e468638bd32ab",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='Your answer:', options=('left-most', 'left-center', 'right-center', 'right-most'), …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b40074764c9f4bc79e6164831df08455",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "25021b2ce9f0426995eaa245497c67af",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_8()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "017e9b22",
   "metadata": {},
   "source": [
    "## Exercise 9:\n",
    "\n",
    "Given a n-sided fair dice. You throw it twice and record the sum. How does increasing the number of sides `n` of the dice impact the mean and variance of the sum and the covariance of the joint distribution?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "645a9b74",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For a 2-sided dice:\n",
      "Mean of the sum: 3.002\n",
      "Variance of the sum: 0.497\n",
      "Covariance of the joint distribution: -0.002\n",
      "\n",
      "For a 3-sided dice:\n",
      "Mean of the sum: 4.000\n",
      "Variance of the sum: 1.331\n",
      "Covariance of the joint distribution: -0.001\n",
      "\n",
      "For a 4-sided dice:\n",
      "Mean of the sum: 5.003\n",
      "Variance of the sum: 2.510\n",
      "Covariance of the joint distribution: 0.003\n",
      "\n",
      "For a 5-sided dice:\n",
      "Mean of the sum: 6.014\n",
      "Variance of the sum: 4.003\n",
      "Covariance of the joint distribution: 0.002\n",
      "\n",
      "For a 6-sided dice:\n",
      "Mean of the sum: 7.012\n",
      "Variance of the sum: 5.820\n",
      "Covariance of the joint distribution: -0.001\n",
      "\n",
      "For a 7-sided dice:\n",
      "Mean of the sum: 8.011\n",
      "Variance of the sum: 7.934\n",
      "Covariance of the joint distribution: -0.024\n",
      "\n",
      "For a 8-sided dice:\n",
      "Mean of the sum: 9.007\n",
      "Variance of the sum: 10.492\n",
      "Covariance of the joint distribution: 0.012\n",
      "\n",
      "For a 9-sided dice:\n",
      "Mean of the sum: 10.010\n",
      "Variance of the sum: 13.225\n",
      "Covariance of the joint distribution: -0.040\n",
      "\n",
      "For a 10-sided dice:\n",
      "Mean of the sum: 11.020\n",
      "Variance of the sum: 16.428\n",
      "Covariance of the joint distribution: -0.018\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "def simulate_dice_throws(n, num_trials=100000):\n",
    "    np.random.seed(0)\n",
    "    first_throw = np.random.choice(np.arange(1, n+1), size=num_trials)\n",
    "    second_throw = np.random.choice(np.arange(1, n+1), size=num_trials)\n",
    "    sum_throws = first_throw + second_throw\n",
    "\n",
    "    mean = np.mean(sum_throws)\n",
    "    variance = np.var(sum_throws)\n",
    "    covariance = np.cov(first_throw, second_throw)[0][1]\n",
    "\n",
    "    return mean, variance, covariance\n",
    "\n",
    "for n in range(2, 11):\n",
    "    mean, variance, covariance = simulate_dice_throws(n)\n",
    "    print(f\"For a {n}-sided dice:\")\n",
    "    print(f\"Mean of the sum: {mean:.3f}\")\n",
    "    print(f\"Variance of the sum: {variance:.3f}\")\n",
    "    print(f\"Covariance of the joint distribution: {covariance:.3f}\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "907412da",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "As the number of sides in the die increases:\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b67d3cf1a785454f8a228499aa246633",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='The mean of the sum:', options=('stays the same', 'increases', 'decreases'), value=…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "742384c0e29744bc9b62ab41d5fa0513",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='The variance of the sum:', options=('stays the same', 'increases', 'decreases'), va…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "98d96e90803d41f9ac7315e4f9a7d0b3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ToggleButtons(description='The covariance of the joint distribution:', options=('stays the same', 'increases',…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e93ac2af51014ad4899a9ac867780fe1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1597fc72f95b4040ad5085def6650900",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_9()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcf9b3ac",
   "metadata": {},
   "source": [
    "## Exercise 10:\n",
    "\n",
    "Given a 6-sided loaded dice. You throw it twice and record the sum. Which of the following statemets is true?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "008c5858",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For a 6-sided dice with side 1 loaded:\n",
      "Mean of the sum: 6.298\n",
      "Variance of the sum: 6.565\n",
      "\n",
      "For a 6-sided dice with side 2 loaded:\n",
      "Mean of the sum: 6.581\n",
      "Variance of the sum: 5.595\n",
      "\n",
      "For a 6-sided dice with side 3 loaded:\n",
      "Mean of the sum: 6.864\n",
      "Variance of the sum: 5.092\n",
      "\n",
      "For a 6-sided dice with side 4 loaded:\n",
      "Mean of the sum: 7.151\n",
      "Variance of the sum: 5.093\n",
      "\n",
      "For a 6-sided dice with side 5 loaded:\n",
      "Mean of the sum: 7.436\n",
      "Variance of the sum: 5.588\n",
      "\n",
      "For a 6-sided dice with side 6 loaded:\n",
      "Mean of the sum: 7.725\n",
      "Variance of the sum: 6.579\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "def simulate_loaded_dice(n, loaded_side, num_trials=100000):\n",
    "    np.random.seed(0)\n",
    "    p = [2/7 if i == loaded_side else 1/7 for i in range(1, n+1)]\n",
    "    first_throw = np.random.choice(np.arange(1, n+1), p=p, size=num_trials)\n",
    "    second_throw = np.random.choice(np.arange(1, n+1), p=p, size=num_trials)\n",
    "    sum_throws = first_throw + second_throw\n",
    "\n",
    "    mean = np.mean(sum_throws)\n",
    "    variance = np.var(sum_throws)\n",
    "\n",
    "    return mean, variance\n",
    "\n",
    "for loaded_side in range(1, 7):\n",
    "    mean, variance = simulate_loaded_dice(6, loaded_side)\n",
    "    print(f\"For a 6-sided dice with side {loaded_side} loaded:\")\n",
    "    print(f\"Mean of the sum: {mean:.3f}\")\n",
    "    print(f\"Variance of the sum: {variance:.3f}\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "99373567",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "714480702dcb469f93f857b2632106cc",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "RadioButtons(layout=Layout(width='max-content'), options=('the mean and variance is the same regardless of whi…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b461913e196446e5a6eff5aff1b804d5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "051b7fa513c344ccb21fb57828d2c6a4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_10()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a84afef",
   "metadata": {},
   "source": [
    "## Exercise 11:\n",
    "\n",
    "Given a fair n-sided dice. You throw it twice and record the sum but the second throw depends on the result of the first one such as in exercises 7 and 8. Which of the following statements is true?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "7cb6ad84",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance when second throw is made if first throw is <= 3: -2.623\n",
      "Covariance when second throw is made if first throw is >= 3: 2.333\n"
     ]
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "np.random.seed(0)\n",
    "num_trials = 1000000\n",
    "\n",
    "first_throw = np.random.choice(range(1, 7), size=num_trials)\n",
    "\n",
    "second_throw1 = np.where(first_throw <= 3, np.random.choice(range(1, 7), size=num_trials), 0)\n",
    "cov1 = np.cov(first_throw, second_throw1)[0, 1]\n",
    "\n",
    "second_throw2 = np.where(first_throw >= 3, np.random.choice(range(1, 7), size=num_trials), 0)\n",
    "cov2 = np.cov(first_throw, second_throw2)[0, 1]\n",
    "\n",
    "print(f\"Covariance when second throw is made if first throw is <= 3: {cov1:.3f}\")\n",
    "print(f\"Covariance when second throw is made if first throw is >= 3: {cov2:.3f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "9b048c03",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ae5a8b4b8ccd480686d27ab5c580304f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "RadioButtons(layout=Layout(width='max-content'), options=('changing the direction of the inequality will chang…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ca5d16098e9c4740b4e09eab657ed470",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a9a02ba00ce34e4f9b785fffec880992",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_11()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8a1a8a3",
   "metadata": {},
   "source": [
    "## Exercise 12:\n",
    "\n",
    "Given a n-sided dice (could be fair or not). You throw it twice and record the sum (there is no dependance between the throws). If you are only given the histogram of the sums can you use it to know which are the probabilities of the dice landing on each side?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "b42149cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAY0lEQVR4nO3de1yUdf7//+cIMlgKHlAEFxE7KEaeoAyN1ExMy7RswzxvWmGWAmsfRTQPfZW0MitPNw0zt/WwpW220Sa1arbgpgjWFmkHFFMI0WQ0PwLC9fvDn/NpAhQQHMbrcb/d5vbhes/7el+v97Sf5tn7OozFMAxDAAAAJtLA2QUAAABcbQQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQg4Bqydu1aWSwW7d27t8L377//frVr186hrV27dho3bly1jpOamqo5c+bo1KlTNSvUhDZt2qRbbrlFjRo1ksViUWZmZqV9s7KyNHr0aLVv316enp7y8fFR9+7d9fTTT8tms129ooFrmLuzCwDgXO+99568vLyqtU9qaqrmzp2rcePGqWnTpnVT2DXk+PHjGj16tO69914tX75cVqtVN998c4V9MzIy1KtXLwUHB+u5555Tu3btVFBQoP3792vjxo2aOnVqtf95ASiPAASYXLdu3ZxdQrWVlJTIYrHI3d01/hV28OBBlZSUaNSoUerdu/cl+y5ZskQNGjTQjh071KRJE3v7ww8/rOeff178fCNQOzgFBpjc70+BlZWV6f/9v/+nDh06qFGjRmratKk6d+6sV199VZI0Z84cPfvss5KkoKAgWSwWWSwW7dixw77/okWL1LFjR1mtVrVq1UpjxozRTz/95HBcwzC0YMECBQYGytPTU2FhYUpJSVGfPn3Up08fe78dO3bIYrHoL3/5i/785z+rTZs2slqt+v7773X8+HE99dRT6tSpkxo3bqxWrVrp7rvv1q5duxyOdejQIVksFr344otauHCh2rVrp0aNGqlPnz72cDJ9+nT5+/vL29tbDz74oPLz86v0+W3dulXh4eG67rrr1KRJE/Xv319paWn298eNG6c777xTkhQVFSWLxeIwv987ceKEvLy81Lhx4wrft1gs9r8rO31Z2We4fv16TZs2TX5+fmrcuLEGDx6sn3/+WadPn9YTTzwhHx8f+fj46E9/+pPOnDlTpfkDrso1/vMJQLWUlpbq/Pnz5dqrsnqwaNEizZkzRzNnztRdd92lkpISffvtt/brfSZMmKCTJ0/q9ddf15YtW+Tn5ydJ6tSpkyRp4sSJWrVqlZ5++mndf//9OnTokGbNmqUdO3Zo37598vHxkSQlJCQoMTFRTzzxhB566CEdOXJEEyZMUElJSYWnh+Lj4xUeHq6VK1eqQYMGatWqlY4fPy5Jmj17tlq3bq0zZ87ovffeU58+ffTpp5+WCxrLli1T586dtWzZMp06dUp//vOfNXjwYPXo0UMNGzbUmjVrdPjwYU2dOlUTJkzQ1q1bL/lZrV+/XiNHjlRkZKQ2bNigoqIiLVq0yH78O++8U7NmzdLtt9+uSZMmacGCBerbt+8lT2GFh4frww8/1MiRI/Xkk0/q9ttvV6NGjS77z60qZsyYob59+2rt2rU6dOiQpk6dqkcffVTu7u7q0qWLNmzYoIyMDM2YMUNNmjTRa6+9VivHBeolA8A148033zQkXfIVGBjosE9gYKAxduxY+/b9999vdO3a9ZLHefHFFw1JRnZ2tkN7VlaWIcl46qmnHNr/85//GJKMGTNmGIZhGCdPnjSsVqsRFRXl0C8tLc2QZPTu3dvetn37dkOScdddd112/ufPnzdKSkqMfv36GQ8++KC9PTs725BkdOnSxSgtLbW3L1myxJBkPPDAAw7jxMTEGJKMwsLCSo9VWlpq+Pv7G7feeqvDmKdPnzZatWpl9OzZs9wc3nnnncvO4dy5c8bQoUPt/7zc3NyMbt26GQkJCUZ+fr5D39//s7uod+/eFX6GgwcPrnCekydPdmgfOnSo0bx588vWCrgyToEB16B169Zpz5495V4XT8Vcyu233679+/frqaee0scff1ytu462b98uSeVOy9x+++0KDg7Wp59+KknavXu3ioqK9Mgjjzj0u+OOO8rdpXbRsGHDKmxfuXKlunfvLk9PT7m7u6thw4b69NNPlZWVVa7voEGD1KDB//1rLzg4WJJ03333OfS72J6Tk1PJTKUDBw7o2LFjGj16tMOYjRs31rBhw7R7926dPXu20v0rY7Va9d577+mbb77RK6+8ouHDh+v48eOaP3++goODdeDAgWqPedH999/vsH2p+Z88eZLTYLimEYCAa1BwcLDCwsLKvby9vS+7b3x8vF566SXt3r1bAwcOVIsWLdSvX79Kb63/rRMnTkiS/bTYb/n7+9vfv/h/fX19y/WrqK2yMRcvXqyJEyeqR48e2rx5s3bv3q09e/bo3nvv1f/+7/+W69+8eXOHbQ8Pj0u2nzt3rsJafjuHyuZaVlamX375pdL9Lyc4OFgxMTF6++23lZOTo8WLF+vEiROaNWtWjceszfkDro4ABMCBu7u74uLitG/fPp08eVIbNmzQkSNHNGDAgMuuaLRo0UKSlJubW+69Y8eO2a//udjv559/LtcvLy+vwrF/e/HvRW+//bb69OmjFStW6L777lOPHj0UFham06dPX3qSteByc23QoIGaNWtWK8eyWCyKjY1V06ZN9d///tfe7unpqaKionL9CwoKauW4wLWMAASgUk2bNtXDDz+sSZMm6eTJkzp06JCkC6dpJJVbZbn77rslXQgmv7Vnzx5lZWWpX79+kqQePXrIarVq06ZNDv12796tw4cPV7k+i8Vir+WiL7/80uEurLrSoUMHtWnTRuvXr3e4uPzXX3/V5s2b7XeGVVdFgUq6EKpsNpv8/f3tbe3atdOXX37p0O/gwYNXdJoMMAvuAgPgYPDgwQoJCVFYWJhatmypw4cPa8mSJQoMDNRNN90kSbr11lslSa+++qrGjh2rhg0bqkOHDurQoYOeeOIJvf7662rQoIEGDhxovwssICBAsbGxki6ccomLi1NiYqKaNWumBx98UD/99JPmzp0rPz8/h2tqLuX+++/X888/r9mzZ6t37946cOCA5s2bp6CgoArvgqtNDRo00KJFizRy5Ejdf//9evLJJ1VUVKQXX3xRp06d0gsvvFCjcZ944gmdOnVKw4YNU0hIiNzc3PTtt9/qlVdeUYMGDTRt2jR739GjR2vUqFF66qmnNGzYMB0+fFiLFi1Sy5Yta2uawDWLAATAQd++fbV582a98cYbstlsat26tfr3769Zs2apYcOGki48ZyY+Pl5vvfWWVq9erbKyMm3fvt1+OuqGG25QUlKSli1bJm9vb917771KTEy0nzaSpPnz5+v666/XypUr9eabb6pjx45asWKFEhISqvx06YSEBJ09e1ZJSUlatGiROnXqpJUrV+q9996zP5eoLo0YMULXX3+9EhMTFRUVJTc3N91xxx3avn27evbsWaMxn3nmGW3atEmrV6/W0aNH9euvv6ply5YKDw/XunXrdMcddzgc/9ixY/bPMCQkRCtWrNDcuXNra4rANctiGDxWFED9kJ2drY4dO2r27NmaMWOGs8sBcA0jAAFwiv3792vDhg3q2bOnvLy8dODAAS1atEg2m03//e9/K70bDABqA6fAADjF9ddfr7179yopKUmnTp2St7e3+vTpo/nz5xN+ANQ5VoAAAIDpcBs8AAAwHQIQAAAwHQIQAAAwHS6CrkBZWZmOHTumJk2aVPj4fQAAUP8YhqHTp0/L39//sg9UJQBV4NixYwoICHB2GQAAoAaOHDmiP/zhD5fsQwCqQJMmTSRd+AC9vLycXA0AAKgKm82mgIAA+/f4pRCAKnDxtJeXlxcBCAAAF1OVy1e4CBoAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJiOu7MLAIDLGb92j7NLuKykcbc5uwQA1cAKEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB2nB6Dly5crKChInp6eCg0N1a5duyrtm5ubqxEjRqhDhw5q0KCBYmJiKux36tQpTZo0SX5+fvL09FRwcLCSk5PraAYAAMDVODUAbdq0STExMUpISFBGRoYiIiI0cOBA5eTkVNi/qKhILVu2VEJCgrp06VJhn+LiYvXv31+HDh3Su+++qwMHDmj16tVq06ZNXU4FAAC4EKf+GOrixYs1fvx4TZgwQZK0ZMkSffzxx1qxYoUSExPL9W/Xrp1effVVSdKaNWsqHHPNmjU6efKkUlNT1bBhQ0lSYGBgHc0AAAC4IqetABUXFys9PV2RkZEO7ZGRkUpNTa3xuFu3blV4eLgmTZokX19fhYSEaMGCBSotLa10n6KiItlsNocXAAC4djktABUUFKi0tFS+vr4O7b6+vsrLy6vxuD/++KPeffddlZaWKjk5WTNnztTLL7+s+fPnV7pPYmKivL297a+AgIAaHx8AANR/Tr8I2mKxOGwbhlGurTrKysrUqlUrrVq1SqGhoRo+fLgSEhK0YsWKSveJj49XYWGh/XXkyJEaHx8AANR/TrsGyMfHR25ubuVWe/Lz88utClWHn5+fGjZsKDc3N3tbcHCw8vLyVFxcLA8Pj3L7WK1WWa3WGh8TAAC4FqetAHl4eCg0NFQpKSkO7SkpKerZs2eNx+3Vq5e+//57lZWV2dsOHjwoPz+/CsMPAAAwH6eeAouLi9Mbb7yhNWvWKCsrS7GxscrJyVF0dLSkC6emxowZ47BPZmamMjMzdebMGR0/flyZmZn65ptv7O9PnDhRJ06c0JQpU3Tw4EF9+OGHWrBggSZNmnRV5wYAAOovp94GHxUVpRMnTmjevHnKzc1VSEiIkpOT7bet5+bmlnsmULdu3ex/p6ena/369QoMDNShQ4ckSQEBAdq2bZtiY2PVuXNntWnTRlOmTNG0adOu2rwAAED9ZjEMw3B2EfWNzWaTt7e3CgsL5eXl5exyANMbv3aPs0u4rKRxtzm7BMD0qvP97fS7wAAAAK42AhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdpweg5cuXKygoSJ6engoNDdWuXbsq7Zubm6sRI0aoQ4cOatCggWJiYi459saNG2WxWDR06NDaLRoAALg0pwagTZs2KSYmRgkJCcrIyFBERIQGDhyonJycCvsXFRWpZcuWSkhIUJcuXS459uHDhzV16lRFRETURekAAMCFOTUALV68WOPHj9eECRMUHBysJUuWKCAgQCtWrKiwf7t27fTqq69qzJgx8vb2rnTc0tJSjRw5UnPnzlX79u3rqnwAAOCinBaAiouLlZ6ersjISIf2yMhIpaamXtHY8+bNU8uWLTV+/Pgq9S8qKpLNZnN4AQCAa5fTAlBBQYFKS0vl6+vr0O7r66u8vLwaj/vvf/9bSUlJWr16dZX3SUxMlLe3t/0VEBBQ4+MDAID6z+kXQVssFodtwzDKtVXV6dOnNWrUKK1evVo+Pj5V3i8+Pl6FhYX215EjR2p0fAAA4BrcnXVgHx8fubm5lVvtyc/PL7cqVFU//PCDDh06pMGDB9vbysrKJEnu7u46cOCAbrjhhnL7Wa1WWa3WGh0TACRp/No9zi7hspLG3ebsEoB6w2krQB4eHgoNDVVKSopDe0pKinr27FmjMTt27KivvvpKmZmZ9tcDDzygvn37KjMzk1NbAABAkhNXgCQpLi5Oo0ePVlhYmMLDw7Vq1Srl5OQoOjpa0oVTU0ePHtW6devs+2RmZkqSzpw5o+PHjyszM1MeHh7q1KmTPD09FRIS4nCMpk2bSlK5dgAAYF5ODUBRUVE6ceKE5s2bp9zcXIWEhCg5OVmBgYGSLjz48PfPBOrWrZv97/T0dK1fv16BgYE6dOjQ1SwduGa4wqkbAKhtFsMwDGcXUd/YbDZ5e3ursLBQXl5ezi4HqFMEIPPgGiBc66rz/e30u8AAAACuNgIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHacHoOXLlysoKEienp4KDQ3Vrl27Ku2bm5urESNGqEOHDmrQoIFiYmLK9Vm9erUiIiLUrFkzNWvWTPfcc4+++OKLOpwBAABwNU4NQJs2bVJMTIwSEhKUkZGhiIgIDRw4UDk5ORX2LyoqUsuWLZWQkKAuXbpU2GfHjh169NFHtX37dqWlpalt27aKjIzU0aNH63IqAADAhVgMwzCcdfAePXqoe/fuWrFihb0tODhYQ4cOVWJi4iX37dOnj7p27aolS5Zcsl9paamaNWumpUuXasyYMVWqy2azydvbW4WFhfLy8qrSPoCrGr92j7NLwFWSNO42Z5cA1KnqfH87bQWouLhY6enpioyMdGiPjIxUampqrR3n7NmzKikpUfPmzSvtU1RUJJvN5vACAADXLqcFoIKCApWWlsrX19eh3dfXV3l5ebV2nOnTp6tNmza65557Ku2TmJgob29v+ysgIKDWjg8AAOofp18EbbFYHLYNwyjXVlOLFi3Shg0btGXLFnl6elbaLz4+XoWFhfbXkSNHauX4AACgfnJ31oF9fHzk5uZWbrUnPz+/3KpQTbz00ktasGCBPvnkE3Xu3PmSfa1Wq6xW6xUfEwAAuAanrQB5eHgoNDRUKSkpDu0pKSnq2bPnFY394osv6vnnn9c///lPhYWFXdFYAADg2uO0FSBJiouL0+jRoxUWFqbw8HCtWrVKOTk5io6OlnTh1NTRo0e1bt06+z6ZmZmSpDNnzuj48ePKzMyUh4eHOnXqJOnCaa9Zs2Zp/fr1ateunX2FqXHjxmrcuPHVnSAAAKiXnBqAoqKidOLECc2bN0+5ubkKCQlRcnKyAgMDJV148OHvnwnUrVs3+9/p6elav369AgMDdejQIUkXHqxYXFyshx9+2GG/2bNna86cOXU6HwAA4Bqc+hyg+ornAMFMeA6QefAcIFzrXOI5QAAAAM5CAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKbj1B9DBQBcPa7wu2/8XhmuFlaAAACA6bACBNQhV/gvbgAwI1aAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6dQoAK1du1Znz56t7VoAAACuihoFoPj4eLVu3Vrjx49XampqbdcEAABQp2oUgH766Se9/fbb+uWXX9S3b1917NhRCxcuVF5eXm3XBwAAUOtqFIDc3Nz0wAMPaMuWLTpy5IieeOIJ/fWvf1Xbtm31wAMP6P3331dZWVlt1woAAFArrvgi6FatWqlXr14KDw9XgwYN9NVXX2ncuHG64YYbtGPHjsvuv3z5cgUFBcnT01OhoaHatWtXpX1zc3M1YsQIdejQQQ0aNFBMTEyF/TZv3qxOnTrJarWqU6dOeu+992o4OwAAcC2qcQD6+eef9dJLL+mWW25Rnz59ZLPZ9I9//EPZ2dk6duyYHnroIY0dO/aSY2zatEkxMTFKSEhQRkaGIiIiNHDgQOXk5FTYv6ioSC1btlRCQoK6dOlSYZ+0tDRFRUVp9OjR2r9/v0aPHq1HHnlE//nPf2o6VQAAcI2xGIZhVHenwYMH6+OPP9bNN9+sCRMmaMyYMWrevLlDn2PHjukPf/jDJU+F9ejRQ927d9eKFSvsbcHBwRo6dKgSExMvWUOfPn3UtWtXLVmyxKE9KipKNptNH330kb3t3nvvVbNmzbRhw4Yqzc9ms8nb21uFhYXy8vKq0j5ARcav3ePsEgCXkjTuNmeXABdWne9v95ocoFWrVtq5c6fCw8Mr7ePn56fs7OxK3y8uLlZ6erqmT5/u0B4ZGXlFd5alpaUpNjbWoW3AgAHlgtJvFRUVqaioyL5ts9lqfHwAAFD/1egUWO/evdW9e/dy7cXFxVq3bp0kyWKxKDAwsNIxCgoKVFpaKl9fX4d2X1/fK7qbLC8vr9pjJiYmytvb2/4KCAio8fEBAED9V6MA9Kc//UmFhYXl2k+fPq0//elP1RrLYrE4bBuGUa6tuqo7Znx8vAoLC+2vI0eOXNHxAQBA/VajU2CVBYqffvpJ3t7eVRrDx8dHbm5u5VZm8vPzy63gVEfr1q2rPabVapXVaq3xMQEAgGupVgDq1q2bLBaLLBaL+vXrJ3f3/9u9tLRU2dnZuvfee6s0loeHh0JDQ5WSkqIHH3zQ3p6SkqIhQ4ZUpywH4eHhSklJcbgOaNu2berZs2eNxwQAANeWagWgoUOHSpIyMzM1YMAANW7c2P6eh4eH2rVrp2HDhlV5vLi4OI0ePVphYWEKDw/XqlWrlJOTo+joaEkXTk0dPXrUfl3RxWNL0pkzZ3T8+HFlZmbKw8NDnTp1kiRNmTJFd911lxYuXKghQ4bo/fff1yeffKLPP/+8OlMFAADXsGoFoNmzZ0uS2rVrp6ioKHl6el7RwaOionTixAnNmzdPubm5CgkJUXJysv3i6dzc3HLPBOrWrZv97/T0dK1fv16BgYE6dOiQJKlnz57auHGjZs6cqVmzZumGG27Qpk2b1KNHjyuqFQAAXDtq9Bygax3PAUJt4TlAQPXwHCBciTp5DlDz5s118OBB+fj4qFmzZpe8q+rkyZNVrxYAAOAqq3IAeuWVV9SkSRP731d6qzoAAICzVDkA/fZ3vcaNG1cXtQAAAFwVVQ5A1fl5CK6bAQAA9VmVA1DTpk0ve9rr4gMSS0tLr7gwAACAulLlALR9+/a6rAMAAOCqqXIA6t27d13WAQAAcNVUOQB9+eWXCgkJUYMGDfTll19esm/nzp2vuDAAAIC6UuUA1LVrV+Xl5alVq1bq2rWrLBaLKnqGItcAAQCA+q7KASg7O1stW7a0/w0AAOCqqhyALv4+1+//BgAAcDXV+jHU3zpw4IBef/11ZWVlyWKxqGPHjnrmmWfUoUOH2qwPAACg1jWoyU7vvvuuQkJClJ6eri5duqhz587at2+fQkJC9M4779R2jQAAALWqRitA//M//6P4+HjNmzfPoX327NmaNm2a/vjHP9ZKcQAAAHWhRitAeXl5GjNmTLn2UaNGKS8v74qLAgAAqEs1CkB9+vTRrl27yrV//vnnioiIuOKiAAAA6lKVT4Ft3brV/vcDDzygadOmKT09XXfccYckaffu3XrnnXc0d+7c2q8SAACgFlmMip5mWIEGDaq2WHQtPAjRZrPJ29tbhYWF/LI9rsj4tXucXQLgUpLG3ebsEuDCqvP9XeUVoLKysisuDAAAoD6o0TVAAAAArqzGD0L89ddftXPnTuXk5Ki4uNjhvcmTJ19xYQAAAHWlRgEoIyNDgwYN0tmzZ/Xrr7+qefPmKigo0HXXXadWrVoRgAAAQL1Wo1NgsbGxGjx4sE6ePKlGjRpp9+7dOnz4sEJDQ/XSSy/Vdo0AAAC1qkYBKDMzU3/+85/l5uYmNzc3FRUVKSAgQIsWLdKMGTNqu0YAAIBaVaMA1LBhQ1ksFkmSr6+vcnJyJEne3t72vwEAAOqrGl0D1K1bN+3du1c333yz+vbtq+eee04FBQX6y1/+oltvvbW2awQAAKhVNQpACxYs0OnTpyVJzz//vMaOHauJEyfqxhtv1JtvvlmrBQIAzMMVHh7KwxqvDTUKQGFhYfa/W7ZsqeTk5ForCAAAoK7V+DlAkpSfn68DBw7IYrGoQ4cOatmyZW3VBQAAUGdqdBG0zWbT6NGj1aZNG/Xu3Vt33XWX/P39NWrUKBUWFtZ2jQAAALWqRitAEyZMUGZmpv7xj38oPDxcFotFqampmjJlih5//HH97W9/q+06gXJc4VoBAED9VKMVoA8//FBr1qzRgAED5OXlpSZNmmjAgAFavXq1Pvzww2qNtXz5cgUFBcnT01OhoaHatWvXJfvv3LlToaGh8vT0VPv27bVy5cpyfZYsWaIOHTqoUaNGCggIUGxsrM6dO1etugAAwLWrRgGoRYsW8vb2Ltfu7e2tZs2aVXmcTZs2KSYmRgkJCcrIyFBERIQGDhxY6bOEsrOzNWjQIEVERCgjI0MzZszQ5MmTtXnzZnufv/71r5o+fbpmz56trKwsJSUladOmTYqPj6/+RAEAwDWpRgFo5syZiouLU25urr0tLy9Pzz77rGbNmlXlcRYvXqzx48drwoQJCg4O1pIlSxQQEKAVK1ZU2H/lypVq27atlixZouDgYE2YMEGPPfaYw89vpKWlqVevXhoxYoTatWunyMhIPfroo9q7d29NpgoAAK5BVb4GqFu3bvanP0vSd999p8DAQLVt21aSlJOTI6vVquPHj+vJJ5+87HjFxcVKT0/X9OnTHdojIyOVmppa4T5paWmKjIx0aBswYICSkpJUUlKihg0b6s4779Tbb7+tL774Qrfffrt+/PFHJScna+zYsVWdKgAAuMZVOQANHTq0Vg9cUFCg0tJS+fr6OrT7+voqLy+vwn3y8vIq7H/+/HkVFBTIz89Pw4cP1/Hjx3XnnXfKMAydP39eEydOLBe0fquoqEhFRUX2bZvNdgUzAwAA9V2VA9Ds2bPrpIDfripJkmEY5dou1/+37Tt27ND8+fO1fPly9ejRQ99//72mTJkiPz+/Sk/PJSYmau7cuVcyDQAA4EKu6EGI6enpysrKksViUadOndStW7cq7+vj4yM3N7dyqz35+fnlVnkuat26dYX93d3d1aJFC0nSrFmzNHr0aE2YMEGSdOutt+rXX3/VE088oYSEBDVoUP6yp/j4eMXFxdm3bTabAgICqjwXAADgWmoUgPLz8zV8+HDt2LFDTZs2lWEYKiwsVN++fbVx48YqPRHaw8NDoaGhSklJ0YMPPmhvT0lJ0ZAhQyrcJzw8XB988IFD27Zt2xQWFqaGDRtKks6ePVsu5Li5uckwDPtq0e9ZrVZZrdbL1gwAAK4NNboL7JlnnpHNZtPXX3+tkydP6pdfftF///tf2Ww2TZ48ucrjxMXF6Y033tCaNWuUlZWl2NhY5eTkKDo6WtKFlZkxY8bY+0dHR+vw4cOKi4tTVlaW1qxZo6SkJE2dOtXeZ/DgwVqxYoU2btyo7OxspaSkaNasWXrggQfk5uZWk+kCAIBrTI1WgP75z3/qk08+UXBwsL2tU6dOWrZsWbm7tC4lKipKJ06c0Lx585Sbm6uQkBAlJycrMDBQkpSbm+vwTKCgoCAlJycrNjZWy5Ytk7+/v1577TUNGzbM3mfmzJmyWCyaOXOmjh49qpYtW2rw4MGaP39+TaYKAACuQRajsvNCl9CkSRPt2rVLXbt2dWjPyMhQ7969Xf4uKpvNJm9vbxUWFsrLy8vZ5aAS/BQGAGdIGnebs0tAJarz/V2jU2B33323pkyZomPHjtnbjh49qtjYWPXr168mQwIAAFw1NQpAS5cu1enTp9WuXTvdcMMNuvHGGxUUFKTTp0/r9ddfr+0aAQAAalWNrgEKCAjQvn37lJKSom+//VaGYahTp0665557ars+AACAWlftAHT+/Hl5enoqMzNT/fv3V//+/euiLgAAgDpT7VNg7u7uCgwMVGlpaV3UAwAAUOdq/Gvw8fHxOnnyZG3XAwAAUOdqdA3Qa6+9pu+//17+/v4KDAzU9ddf7/D+vn37aqU4AACAulCjADR06FBZLJZKf1oCAACgPqtWADp79qyeffZZ/f3vf1dJSYn69eun119/XT4+PnVVHwAAQK2r1jVAs2fP1tq1a3Xffffp0Ucf1SeffKKJEyfWVW0AAAB1olorQFu2bFFSUpKGDx8uSRo5cqR69eql0tJSfmgUAAC4jGqtAB05ckQRERH27dtvv13u7u4OP4kBAABQ31UrAJWWlsrDw8Ohzd3dXefPn6/VogAAAOpStU6BGYahcePGyWq12tvOnTun6Ohoh1vht2zZUnsVAgAA1LJqBaCxY8eWaxs1alStFQMAAHA1VCsAvfnmm3VVBwAAwFVTo5/CAAAAcGUEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDpOD0DLly9XUFCQPD09FRoaql27dl2y/86dOxUaGipPT0+1b99eK1euLNfn1KlTmjRpkvz8/OTp6ang4GAlJyfX1RQAAICLcWoA2rRpk2JiYpSQkKCMjAxFRERo4MCBysnJqbB/dna2Bg0apIiICGVkZGjGjBmaPHmyNm/ebO9TXFys/v3769ChQ3r33Xd14MABrV69Wm3atLla0wIAAPWcxTAMw1kH79Gjh7p3764VK1bY24KDgzV06FAlJiaW6z9t2jRt3bpVWVlZ9rbo6Gjt379faWlpkqSVK1fqxRdf1LfffquGDRvWqC6bzSZvb28VFhbKy8urRmOg7o1fu8fZJQAwoaRxtzm7BFSiOt/fTlsBKi4uVnp6uiIjIx3aIyMjlZqaWuE+aWlp5foPGDBAe/fuVUlJiSRp69atCg8P16RJk+Tr66uQkBAtWLBApaWldTMRAADgctyddeCCggKVlpbK19fXod3X11d5eXkV7pOXl1dh//Pnz6ugoEB+fn768ccf9a9//UsjR45UcnKyvvvuO02aNEnnz5/Xc889V+G4RUVFKioqsm/bbLYrnB0AAKjPnH4RtMVicdg2DKNc2+X6/7a9rKxMrVq10qpVqxQaGqrhw4crISHB4TTb7yUmJsrb29v+CggIqOl0AACAC3BaAPLx8ZGbm1u51Z78/PxyqzwXtW7dusL+7u7uatGihSTJz89PN998s9zc3Ox9goODlZeXp+Li4grHjY+PV2Fhof115MiRK5kaAACo55wWgDw8PBQaGqqUlBSH9pSUFPXs2bPCfcLDw8v137Ztm8LCwuwXPPfq1Uvff/+9ysrK7H0OHjwoPz8/eXh4VDiu1WqVl5eXwwsAAFy7nHoKLC4uTm+88YbWrFmjrKwsxcbGKicnR9HR0ZIurMyMGTPG3j86OlqHDx9WXFycsrKytGbNGiUlJWnq1Kn2PhMnTtSJEyc0ZcoUHTx4UB9++KEWLFigSZMmXfX5AQCA+slpF0FLUlRUlE6cOKF58+YpNzdXISEhSk5OVmBgoCQpNzfX4ZlAQUFBSk5OVmxsrJYtWyZ/f3+99tprGjZsmL1PQECAtm3bptjYWHXu3Flt2rTRlClTNG3atKs+PwAAUD859TlA9RXPAXINPAcIgDPwHKD6yyWeAwQAAOAsTj0FBgCAq3GF1WdWqS6PAIQKucL/gwMAUFOcAgMAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKZDAAIAAKbj9AC0fPlyBQUFydPTU6Ghodq1a9cl++/cuVOhoaHy9PRU+/bttXLlykr7bty4URaLRUOHDq3lqgEAgCtzagDatGmTYmJilJCQoIyMDEVERGjgwIHKycmpsH92drYGDRqkiIgIZWRkaMaMGZo8ebI2b95cru/hw4c1depURURE1PU0AACAi3FqAFq8eLHGjx+vCRMmKDg4WEuWLFFAQIBWrFhRYf+VK1eqbdu2WrJkiYKDgzVhwgQ99thjeumllxz6lZaWauTIkZo7d67at29/NaYCAABciNMCUHFxsdLT0xUZGenQHhkZqdTU1Ar3SUtLK9d/wIAB2rt3r0pKSuxt8+bNU8uWLTV+/PjaLxwAALg8d2cduKCgQKWlpfL19XVo9/X1VV5eXoX75OXlVdj//PnzKigokJ+fn/79738rKSlJmZmZVa6lqKhIRUVF9m2bzVb1iQAAAJfj9IugLRaLw7ZhGOXaLtf/Yvvp06c1atQorV69Wj4+PlWuITExUd7e3vZXQEBANWYAAABcjdNWgHx8fOTm5lZutSc/P7/cKs9FrVu3rrC/u7u7WrRooa+//lqHDh3S4MGD7e+XlZVJktzd3XXgwAHdcMMN5caNj49XXFycfdtmsxGCAAC4hjktAHl4eCg0NFQpKSl68MEH7e0pKSkaMmRIhfuEh4frgw8+cGjbtm2bwsLC1LBhQ3Xs2FFfffWVw/szZ87U6dOn9eqrr1YaaqxWq6xW6xXOCAAAuAqnBSBJiouL0+jRoxUWFqbw8HCtWrVKOTk5io6OlnRhZebo0aNat26dJCk6OlpLly5VXFycHn/8caWlpSkpKUkbNmyQJHl6eiokJMThGE2bNpWkcu0AAMC8nBqAoqKidOLECc2bN0+5ubkKCQlRcnKyAgMDJUm5ubkOzwQKCgpScnKyYmNjtWzZMvn7++u1117TsGHDnDUFAADggizGxauIYWez2eTt7a3CwkJ5eXk5uxynGL92j7NLAADUUNK425xdglNU5/vb6XeBAQAAXG0EIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDruzi7AjMav3ePsEgAA1zBX+J5JGnebU4/PChAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdpweg5cuXKygoSJ6engoNDdWuXbsu2X/nzp0KDQ2Vp6en2rdvr5UrVzq8v3r1akVERKhZs2Zq1qyZ7rnnHn3xxRd1OQUAAOBinBqANm3apJiYGCUkJCgjI0MREREaOHCgcnJyKuyfnZ2tQYMGKSIiQhkZGZoxY4YmT56szZs32/vs2LFDjz76qLZv3660tDS1bdtWkZGROnr06NWaFgAAqOcshmEYzjp4jx491L17d61YscLeFhwcrKFDhyoxMbFc/2nTpmnr1q3Kysqyt0VHR2v//v1KS0ur8BilpaVq1qyZli5dqjFjxlSpLpvNJm9vbxUWFsrLy6uas7o8V/iNFgAA6lJd/BZYdb6/nbYCVFxcrPT0dEVGRjq0R0ZGKjU1tcJ90tLSyvUfMGCA9u7dq5KSkgr3OXv2rEpKStS8efPaKRwAALg8p/0afEFBgUpLS+Xr6+vQ7uvrq7y8vAr3ycvLq7D/+fPnVVBQID8/v3L7TJ8+XW3atNE999xTaS1FRUUqKiqyb9tstupMBQAAuBinXwRtsVgctg3DKNd2uf4VtUvSokWLtGHDBm3ZskWenp6VjpmYmChvb2/7KyAgoDpTAAAALsZpAcjHx0dubm7lVnvy8/PLrfJc1Lp16wr7u7u7q0WLFg7tL730khYsWKBt27apc+fOl6wlPj5ehYWF9teRI0dqMCMAAOAqnBaAPDw8FBoaqpSUFIf2lJQU9ezZs8J9wsPDy/Xftm2bwsLC1LBhQ3vbiy++qOeff17//Oc/FRYWdtlarFarvLy8HF4AAODa5dRTYHFxcXrjjTe0Zs0aZWVlKTY2Vjk5OYqOjpZ0YWXmt3duRUdH6/Dhw4qLi1NWVpbWrFmjpKQkTZ061d5n0aJFmjlzptasWaN27dopLy9PeXl5OnPmzFWfHwAAqJ+cdhG0JEVFRenEiROaN2+ecnNzFRISouTkZAUGBkqScnNzHZ4JFBQUpOTkZMXGxmrZsmXy9/fXa6+9pmHDhtn7LF++XMXFxXr44YcdjjV79mzNmTPnqswLAADUb059DlB9xXOAAACoW6Z9DhAAAICzEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpEIAAAIDpOD0ALV++XEFBQfL09FRoaKh27dp1yf47d+5UaGioPD091b59e61cubJcn82bN6tTp06yWq3q1KmT3nvvvboqHwAAuCCnBqBNmzYpJiZGCQkJysjIUEREhAYOHKicnJwK+2dnZ2vQoEGKiIhQRkaGZsyYocmTJ2vz5s32PmlpaYqKitLo0aO1f/9+jR49Wo888oj+85//XK1pAQCAes5iGIbhrIP36NFD3bt314oVK+xtwcHBGjp0qBITE8v1nzZtmrZu3aqsrCx7W3R0tPbv36+0tDRJUlRUlGw2mz766CN7n3vvvVfNmjXThg0bqlSXzWaTt7e3CgsL5eXlVdPpVWr82j21PiYAAK4kadxttT5mdb6/nbYCVFxcrPT0dEVGRjq0R0ZGKjU1tcJ90tLSyvUfMGCA9u7dq5KSkkv2qWxMAABgPu7OOnBBQYFKS0vl6+vr0O7r66u8vLwK98nLy6uw//nz51VQUCA/P79K+1Q2piQVFRWpqKjIvl1YWCjpQpKsC8X/e6ZOxgUAwFXUxXfsxTGrcnLLaQHoIovF4rBtGEa5tsv1/317dcdMTEzU3Llzy7UHBARUXjgAAKixt5+qu7FPnz4tb2/vS/ZxWgDy8fGRm5tbuZWZ/Pz8cis4F7Vu3brC/u7u7mrRosUl+1Q2piTFx8crLi7Ovl1WVqaTJ0+qRYsWlwxO9YHNZlNAQICOHDlSJ9crmQWfY+3gc6wdfI61g8+xdrjS52gYhk6fPi1/f//L9nVaAPLw8FBoaKhSUlL04IMP2ttTUlI0ZMiQCvcJDw/XBx984NC2bds2hYWFqWHDhvY+KSkpio2NdejTs2fPSmuxWq2yWq0ObU2bNq3ulJzKy8ur3v8P0xXwOdYOPsfawedYO/gca4erfI6XW/m5yKmnwOLi4jR69GiFhYUpPDxcq1atUk5OjqKjoyVdWJk5evSo1q1bJ+nCHV9Lly5VXFycHn/8caWlpSkpKcnh7q4pU6borrvu0sKFCzVkyBC9//77+uSTT/T55587ZY4AAKD+cWoAioqK0okTJzRv3jzl5uYqJCREycnJCgwMlCTl5uY6PBMoKChIycnJio2N1bJly+Tv76/XXntNw4YNs/fp2bOnNm7cqJkzZ2rWrFm64YYbtGnTJvXo0eOqzw8AANRPTr8I+qmnntJTT1V8JdTatWvLtfXu3Vv79u275JgPP/ywHn744door96zWq2aPXt2uVN4qB4+x9rB51g7+BxrB59j7bhWP0enPggRAADAGZz+W2AAAABXGwEIAACYDgEIAACYDgEIAACYDgHIRSUmJuq2225TkyZN1KpVKw0dOlQHDhxwdlkuLzExURaLRTExMc4uxeUcPXpUo0aNUosWLXTdddepa9euSk9Pd3ZZLuX8+fOaOXOmgoKC1KhRI7Vv317z5s1TWVmZs0ur1z777DMNHjxY/v7+slgs+vvf/+7wvmEYmjNnjvz9/dWoUSP16dNHX3/9tXOKrccu9TmWlJRo2rRpuvXWW3X99dfL399fY8aM0bFjx5xX8BUiALmonTt3atKkSdq9e7dSUlJ0/vx5RUZG6tdff3V2aS5rz549WrVqlTp37uzsUlzOL7/8ol69eqlhw4b66KOP9M033+jll192uSeqO9vChQu1cuVKLV26VFlZWVq0aJFefPFFvf76684urV779ddf1aVLFy1durTC9xctWqTFixdr6dKl2rNnj1q3bq3+/fvr9OnTV7nS+u1Sn+PZs2e1b98+zZo1S/v27dOWLVt08OBBPfDAA06otJYYuCbk5+cbkoydO3c6uxSXdPr0aeOmm24yUlJSjN69extTpkxxdkkuZdq0acadd97p7DJc3n333Wc89thjDm0PPfSQMWrUKCdV5HokGe+99559u6yszGjdurXxwgsv2NvOnTtneHt7GytXrnRCha7h959jRb744gtDknH48OGrU1QtYwXoGlFYWChJat68uZMrcU2TJk3Sfffdp3vuucfZpbikrVu3KiwsTH/84x/VqlUrdevWTatXr3Z2WS7nzjvv1KeffqqDBw9Kkvbv36/PP/9cgwYNcnJlris7O1t5eXmKjIy0t1mtVvXu3VupqalOrMz1FRYWymKxuOxKr9OfBI0rZxiG4uLidOeddyokJMTZ5bicjRs3at++fdqzZ4+zS3FZP/74o1asWKG4uDjNmDFDX3zxhSZPniyr1aoxY8Y4uzyXMW3aNBUWFqpjx45yc3NTaWmp5s+fr0cffdTZpbmsvLw8SZKvr69Du6+vrw4fPuyMkq4J586d0/Tp0zVixAiX+IHUihCArgFPP/20vvzyS37wtQaOHDmiKVOmaNu2bfL09HR2OS6rrKxMYWFhWrBggSSpW7du+vrrr7VixQoCUDVs2rRJb7/9ttavX69bbrlFmZmZiomJkb+/v8aOHevs8lyaxWJx2DYMo1wbqqakpETDhw9XWVmZli9f7uxyaowA5OKeeeYZbd26VZ999pn+8Ic/OLscl5Oenq78/HyFhoba20pLS/XZZ59p6dKlKioqkpubmxMrdA1+fn7q1KmTQ1twcLA2b97spIpc07PPPqvp06dr+PDhkqRbb71Vhw8fVmJiIgGohlq3bi3pwkqQn5+fvT0/P7/cqhAur6SkRI888oiys7P1r3/9y2VXfyTuAnNZhmHo6aef1pYtW/Svf/1LQUFBzi7JJfXr109fffWVMjMz7a+wsDCNHDlSmZmZhJ8q6tWrV7nHMBw8eFCBgYFOqsg1nT17Vg0aOP5r2c3Njdvgr0BQUJBat26tlJQUe1txcbF27typnj17OrEy13Mx/Hz33Xf65JNP1KJFC2eXdEVYAXJRkyZN0vr16/X++++rSZMm9vPc3t7eatSokZOrcx1NmjQpd93U9ddfrxYtWnA9VTXExsaqZ8+eWrBggR555BF98cUXWrVqlVatWuXs0lzK4MGDNX/+fLVt21a33HKLMjIytHjxYj322GPOLq1eO3PmjL7//nv7dnZ2tjIzM9W8eXO1bdtWMTExWrBggW666SbddNNNWrBgga677jqNGDHCiVXXP5f6HP39/fXwww9r3759+sc//qHS0lL7907z5s3l4eHhrLJrzsl3oaGGJFX4evPNN51dmsvjNvia+eCDD4yQkBDDarUaHTt2NFatWuXsklyOzWYzpkyZYrRt29bw9PQ02rdvbyQkJBhFRUXOLq1e2759e4X/Phw7dqxhGBduhZ89e7bRunVrw2q1GnfddZfx1VdfObfoeuhSn2N2dnal3zvbt293duk1YjEMw7iagQsAAMDZuAYIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIAACYDgEIgOmdPXtWw4YNk5eXlywWi06dOlWl/ebMmaOuXbvat8eNG6ehQ4fWSY0AahcBCECty8/P15NPPqm2bdvKarWqdevWGjBggNLS0pxdWoXeeust7dq1S6mpqcrNzZW3t3eNxnn11Ve1du3a2i0OQJ3gt8AA1Lphw4appKREb731ltq3b6+ff/5Zn376qU6ePOns0ir0ww8/KDg4+Ip//62mwQnA1ccKEIBaderUKX3++edauHCh+vbtq8DAQN1+++2Kj4/XfffdJ0k6dOiQLBaLMjMzHfazWCzasWOHJGnHjh2yWCz6+OOP1a1bNzVq1Eh333238vPz9dFHHyk4OFheXl569NFHdfbs2UvWtHnzZt1yyy2yWq1q166dXn75Zft7ffr00csvv6zPPvtMFotFffr0qXScF154Qb6+vmrSpInGjx+vc+fOObz/+1NgZWVlWrhwoW688UZZrVa1bdtW8+fPt79/9OhRRUVFqVmzZmrRooWGDBmiQ4cOXfoDBlArCEAAalXjxo3VuHFj/f3vf1dRUdEVjzdnzhwtXbpUqampOnLkiB555BEtWbJE69ev14cffqiUlBS9/vrrle6fnp6uRx55RMOHD9dXX32lOXPmaNasWfZTVVu2bNHjjz+u8PBw5ebmasuWLRWO87e//U2zZ8/W/PnztXfvXvn5+Wn58uWXrD0+Pl4LFy7UrFmz9M0332j9+vXy9fWVdOG6o759+6px48b67LPP9Pnnn6tx48a69957VVxcXLMPC0DVOfvXWAFce959912jWbNmhqenp9GzZ08jPj7e2L9/v/39i78snZGRYW/75ZdfHH5Z+uIvU3/yySf2PomJiYYk44cffrC3Pfnkk8aAAQMqrWXEiBFG//79HdqeffZZo1OnTvbtKVOmGL17977knMLDw43o6GiHth49ehhdunSxb48dO9YYMmSIYRgXftndarUaq1evrnC8pKQko0OHDkZZWZm9raioyGjUqJHx8ccfX7IWAFeOFSAAtW7YsGE6duyYtm7dqgEDBmjHjh3q3r17jS4Q7ty5s/1vX19fXXfddWrfvr1DW35+fqX7Z2VlqVevXg5tvXr10nfffafS0tIq15GVlaXw8HCHtt9v/75/UVGR+vXrV+H76enp+v7779WkSRP7qlnz5s117tw5/fDDD1WuC0DNcBE0gDrh6emp/v37q3///nruuec0YcIEzZ49W+PGjVODBhf+28swDHv/kpKSCsdp2LCh/W+LxeKwfbGtrKys0joMw5DFYinXVtcaNWp0yffLysoUGhqqv/71r+Xea9myZV2VBeD/xwoQgKuiU6dO+vXXXyX93xd8bm6u/f3fXhBd28f9/PPPHdpSU1N18803y83NrcrjBAcHa/fu3Q5tv9/+rZtuukmNGjXSp59+WuH73bt313fffadWrVrpxhtvdHhxNxlQ9whAAGrViRMndPfdd+vtt9/Wl19+qezsbL3zzjtatGiRhgwZIunC6sgdd9yhF154Qd98840+++wzzZw5s07q+fOf/6xPP/1Uzz//vA4ePKi33npLS5cu1dSpU6s1zpQpU7RmzRqtWbNGBw8e1OzZs/X1119X2t/T01PTpk3T//zP/2jdunX64YcftHv3biUlJUmSRo4cKR8fHw0ZMkS7du1Sdna2du7cqSlTpuinn366ojkDuDxOgQGoVY0bN1aPHj30yiuv6IcfflBJSYkCAgL0+OOPa8aMGfZ+a9as0WOPPaawsDB16NBBixYtUmRkZK3X0717d/3tb3/Tc889p+eff15+fn6aN2+exo0bV61xoqKi9MMPP2jatGk6d+6chg0bpokTJ+rjjz+udJ9Zs2bJ3d1dzz33nI4dOyY/Pz9FR0dLkq677jp99tlnmjZtmh566CGdPn1abdq0Ub9+/eTl5XUlUwZQBRbjapwMBwAAqEc4BQYAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEzn/wO2m2la7/RTfwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# You can use this cell for your calculations (not graded)\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def simulate_dice_throws(n, num_trials=100000):\n",
    "    np.random.seed(0)\n",
    "    first_throw = np.random.choice(np.arange(1, n+1), size=num_trials)\n",
    "    second_throw = np.random.choice(np.arange(1, n+1), size=num_trials)\n",
    "    sum_throws = first_throw + second_throw\n",
    "\n",
    "    plt.hist(sum_throws, bins=np.arange(1.5, 2*n+1.5), density=True, alpha=0.7)\n",
    "    plt.title(\"Histogram of Sum\")\n",
    "    plt.xlabel(\"Sum of dice\")\n",
    "    plt.ylabel(\"Probability\")\n",
    "    plt.show()\n",
    "\n",
    "n = 6\n",
    "simulate_dice_throws(n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "33a2e4d9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ec09aca0831447999a97f31daa877680",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "RadioButtons(layout=Layout(width='max-content'), options=('yes, but only if one of the sides is loaded', 'no, …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9362c7078e204c1bb1410c0a9d687f84",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='success', description='Save your answer!', style=ButtonStyle())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7b5b563faf1e4b67ab7920a0aaf6027d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run this cell to submit your answer\n",
    "utils.exercise_12()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1635ca7c",
   "metadata": {},
   "source": [
    "## Before Submitting Your Assignment\n",
    "\n",
    "Run the next cell to check that you have answered all of the exercises"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "c6822278",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All answers saved, you can submit the assignment for grading!\n"
     ]
    }
   ],
   "source": [
    "utils.check_submissions()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5286008f",
   "metadata": {},
   "source": [
    "**Congratulations on finishing this assignment!**\n",
    "\n",
    "During this assignment you tested your knowledge on probability distributions, descriptive statistics and visual interpretation of these concepts. You had the choice to compute everything analytically or create simulations to assist you get the right answer. You probably also realized that some exercises could be answered without any computations just by looking at certain hidden queues that the visualizations revealed.\n",
    "\n",
    "**Keep up the good work!**\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dbe8e3c1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
